RabbitMQ

参见:https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/data-communication/rabbitmq.md

整体架构

生产者生产的消息发送给对应的exchange通过bingdingKey和routingKey确定队列,然后进入对应的队列中,消费者从对应的队列中取出消息进行消费。对于同一个队列消息只能消费一次。

核心组件

生产者与消费者:

生产者:生产消息

消费者:消费消息

消息:

  • 消息头:routingKey(路邮键)、priority(优先级)、delivery-mode(持久性存储)
  • 消息体:消息内容

Exchange交换器:

接收生产者的消息,然后根据exchangeType、bingdingKey和routingKey确定队列

队列Queue:

存储消息的容器

Broker:

MQ消息服务节点

交换器类型

RabbitMQ的exchange Type有四种fanout、direct、topic、headers

  • fanout:直接发送到与exchange绑定的队列中
  • direct:根据RoutingKey和BingdingKey发送到对应的队列中
  • topic:了类似正则,可以模糊匹配outingKey和BingdingKey,发到匹配的队列中
  • headers:队列的选择需要依赖参数headers中的属性,不推荐

安装

参见https://www.jianshu.com/p/60c358235705

posted @ 2020-05-22 11:33  蒙多~想去哪就去哪  阅读(88)  评论(0)    收藏  举报