| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 基于AMQP的消息中间件-RabbitMQ原理 -> 正文阅读 |
|
[大数据]基于AMQP的消息中间件-RabbitMQ原理 |
RabbitMQ就是基于AMQP协议去设计的一款软件,在RabbitMQ中一定有交换器和队列概念,中间的那部分就是一个borker,一个borker中可以运行多个v-host(虚拟主机),默认的RabbitMQ启动后里面就有一个v-host(/[根]),一个v-host中可以有多个交换器和队列组成(多个交换器多个队列),交换器和队列之间通过路由键进行绑定,路由键可选范围字符串+‘*’+‘#‘,通过‘.’进行分割,*号代表一个不包含‘.‘的完整的单词,‘#’代表所有,一切,路由键,队列和交换器之间的对应关系,在进行处理映射的时候,称为绑定(Bingding),通过路由键(Routing key)绑定。一个交换器可以绑定多个队列,一个队列可以绑定多个交换器,它只看路由键是否正确,来决定本次交换器收到的消息放到那个队列里面。 客户端发消息的称为publisher(左边Send Message),消息信息包括头和体,头包括路由键,他的优先级,是否永久存储(就是是否持久化),等等属性,而路由键是一定存在的,只有一种情况下不存在———广播。体是由二进制数组描述的,理论上什么都可以存,实际存的是一个二进制数组,字节流数据。publisher发消息必须发送到指定的交换器上,前提必须知道把消息放到那个交换器上。放到交换器后,交换器会找消息的头,找到路由键,绑定到队列,并把消息投递到里面去。 Consumer消费者(右边Receive Message)可以绑定若干个队列,绑定队列代表消费这个队列中的消息,而队列可以被多个消费者同时绑定,多个队列绑定同一个消费者的时候,轮询消费消息,忽略消费者的性能。一个消费者可以绑定若干个队列,但是就建立一个连接(connect),这个连接有多个信道(channel),一个连接可以有多个信道,这就是软连接(虚连接) 每个信道对应一个队列。通过连接(connection)连接到服务器,用TCP连接,AMQP协议,信道(channel)连接到队列。用信道不用连接的原因就是资源,资源消耗少,耗时短,性能高。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/22 1:06:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |