1. RabbitMQ是什么
一种开源(MPL)的消息代理
一种面向消息的中间件
一种遵循AMQP协议的消息队列服务
2. RabbitMQ可以解决什么
逻辑解耦,异步任务
消息持久化,重启不影响
流量削峰,可搭建集群处理大规模的消息
3. RabbitMQ的特点
- 可靠性:持久化、传输确认、发布确认
- 可扩展性:多个节点可以组成一个集群
- 多语言客户端:几乎支持所有常用语言
- 管理界面:易用的用户界面,便于监控和管理
4. RabbitMQ工作原理
一次消息被消费的大致流程是:生产者发送消息给交换机,交换机根据路由规则将消息发送到队列上,然后消费者消费队列上的消息
RabbitMQ包含如下结构:
- Exchange:交换机,决定消息按什么规则路由到队列
- Queue:消息载体,也是消息队列,每个消息都会被投到一个或多个队列
- Routing Key:路由规则
- Bindings:绑定Exchange和Queue的规则,与Routing Key相匹配
- Publisher:消息生产者
- Consumer:消息消费者
Exchange工作模式
- fanout:广播模式,将消息发给所有绑定的Queue
- direct:完全匹配模式,将消息发给Routing Key和Binding Key完全匹配的Queue
- Topic:主题模式,将消息发给符合通配符规则的Queue
- Headers:将消息发给请求头和消息头匹配的Queue
Comments