RabbitMQ基本概念
- RabbitMQ是一种消息中间件,用来处理来自客户端的异步消息。
- 服务端将要发送到的消息放入到队列池中,接收端可以根据RabbitMQ配置的转发机制接收服务端发来的消息。
- RabbitMQ根据特定的转发规则进行消息的转发、缓冲和持久化操作,主要用于多服务器间或者单服务器的子系统之间进行通信,是分布式系统标准的配置。
Exchange
- 接受生产者发送的消息,并根据Binding规则将消息路由给服务器中的队列
- ExchangeType决定了Exchange路由消息的行为。在RabbitMQ中,ExchangeType常用的有direct、Fanout和Topic三种。
Message Queue
消息队列。我们发送给RabbitMQ的消息最后都会到达各种queue,并且存储在其中(如果路由找不到相应的queue则数据会丢失),等待消费者来取。
Binding Key
它表示的是Exchange与Message Queue是通过binding key进行联系的,这个关系是固定。
Routing Key
生产者在将消息发送给Exchange的时候,一般会指定一个routing key,来指定这个消息的路由规则。这个routing key需要与Exchange Type及binding key联合使用才能生,我们的生产者只需要通过指定routing key来决定消息流向哪里。
RbbitMQ六种工作模式
1. 简单模式:只有一个消费者
生产者发送消息到RabbitMQ,然后把消息存储在队列中,消费者等待从队列接收消息
** 2.工作模式:多个消费者,从同一个队列接收数据**
3. 发布订阅模式:把消息群发给消费者,同一条消息所有消费者都可以收到
4. 路由模式:通过关键词匹配,来确定把消息发送给哪个队列
5. 主体模式:和路由模式相同,具有特殊的关键词规则
6. RPC模式:远程过程异步调用