Rabbitmq概念
- Message 消息,有多个属性,如 routing-key, priority, deliver-mode
- Publisher 生产者,产生消息
- Exchange 交换器,rabbitmq 的消息并不是由生产者直接发到队列中,而是会发给 exchange ,再由 exchage 发给一个或多个 queue
- Binding 绑定,关联消息队列和交换器。一个绑定就是基于路由键把交换器和消息队列连接起来的路由规则。
- Queue, 消息队列
- Connection 网络连接,如 TCP 连接
- Channel 信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内地虚拟连接,AMQP 命令都是通过信道发出去的,不管是发布消息、订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建立和销毁 TCP 都是非常昂贵的开销,所以引入了信道的概念,以复用一条 TCP 连接。
- Consumer
消息的消费者,表示一个从消息队列中取得消息的客户端应用程序。 - Broker
表示消息队列服务器实体。
AMQP 中的消息路由
AMQP 中消息的路由过程和 Java 开发者熟悉的 JMS 存在一些差别,AMQP 中增加了 Exchange 和 Binding 的角色。生产者把消息发布到 Exchange 上,消息最终到达队列并被消费者接收,而 Binding 决定交换器的消息应该发送到那个队列。