RabbitMQ 消息流程、AMOP 概念
AMOP
Server:Broker、RabbitMQ Server,实现 AMOP 实体服务,接受客户端的连接
Conneciton:链接,应用程序与 Server 的网络连接
Channel:网络信道,进行消息读写的通道,客户端可以建立多个 Channel,每个 Channel 就是一个会话
Message:消息,服务器和应用程序之间传输的数据,由 Properties 和 Body 组成。Properties 用于修饰消息,比如消息优先级、延迟等,Body 是消息体
Virtual host:虚拟地址,用于逻辑隔离,是最上层的路由。一个虚拟地址中可以有多个 Exchange 和 Queue,但不允许同名
Exchange:交换机,用于接收生产者的消息,根据 Routing key 转发到 Queue
Queue:Message queue,消息队列,保存消息并转发给消费者,消费者监听这个队列达到接收消息的目的
Bingding:Exchange 和 Queue 之间的虚拟连接,可以包含多个 Routing key
消息流程
生产者把消息投递到 RabbitMQ server,在投递时需要指明是哪个 Exchange 和 Routing key,因为 Queue 和 Exchange 通过 Routing key 来建立规则,所以消息一经生产就能投递到具体的队列中,客户端通过监听具体的队列从而获得这个队列的消息。(消息其实是先到 Server 再到 Virtual host 再到 Exchange 再到 Queue)