RabbitMQ

RabbitMQ是开源代理和队列服务器,使用Erlang编写,是基于AMQP协议的;AMQP是高级消息队列协议

RabbitMQ架构

  • Publisher:消息发布者(生产者),向交换器发送消息
  • Exchange:交换器,用来接收生产者发送的消息并将这些消息路由给队列
  • Binding:绑定,用于消息队列和交换器之间的关联。
  • Queue:消息,用来保存消息直到发送给消费者
  • Connection:网络连接如TCP连接
  • Channel:信道,双向数据流通道,多路复用连接
  • Consumer:消费者,从消息队列中取得消息

Exchange类型

Exchange分发消息根据类型的不同分发策略也有所不同,Exchange3种类型:

  • Direct(键分发):消息中的路由键(routing key)如果和Binding中的bindingkey一致,交换器就将消息发送到对应的队列。它是完全匹配单播的。

  • Fanout(广播分发):每个发送到fanout类型的交换机的消息都会分发到所有绑定的队列上去。该类型转发消息是最快的

  • Topic:通过模式匹配分配消息。将路由键与某个模式进行匹配,此时队列需要绑定到某个模式上。

原文地址:https://www.cnblogs.com/dwx-study/p/14760233.html