RabbitMQ小记

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

No Data
Total 0
  • 1