RabbitMQ工作流程

核心概念

1、Message

  消息,消息是不具名的,由消息头和消息体组成,消息体是需要自己定义的,消息头是一系列的可选属性组成,包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息肯需要持久性存储)等。

-----------------routing-key:Exchange交换机和Queue队列直接的绑定关系Binding

2、Publisher

  消息的生产者,也是一个向交换器发布消息的客户端应该程序。

3、Exchange

交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。

Exchange有4种类型:direct(默认)、fanout、topic和headers,不同类型的Exchange转发消息的策略不同。



4、Broker

消息服务器

5、Queue

消息队列,用来保存消息知道发送给消费者,是消息的容器,也是消息的重点,一个消息可投入一个或多个队列。消息一直在队列里,等到消费者连接到这个队列将其取走。

6、Binding

绑定,用于消息队列和交换机直接的关联。一个绑定就是基于路由键将交换器和队列连接起来的路由规则,使用交换器可以理解成一个由绑定结构的路由表。

Exchange和Queue的绑定可以是多对多。

7、Connection(一个客户端只建立一条Connection连接收发数据,所有的服务消费者订阅消息都是通过创建各自的信道Channel来完成,TCP长连接。)

网络连接,比如一个TCP连接

----------Connection网络连接只有一个,在一个Connection里创建各自需要的Channel信道。

8、Channel

信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真是的TCP连接内的虚拟连接,AMQP命令都是通过信道发出去的,不管是发布消息、订阅消息还是接收消息都是通过信道完成。

9、虚拟主机

一批交换器、消息队列和相关对象。虚拟主机是共享相同身份认证和加密环境的独立服务器域。每个vhost本质上给就是一个mini版的RabbitMQ服务器,拥有自己的队列、交换器、绑定和权限机制。vhost是AMQP概念店基础,必须在连接时指定,RabbITMQmordantvhost是/