RabbitMQ的基本概念

这是个啥

是一个开源的消息代理和队列服务器,用来通过普通协议在不同的应用之间共享数据。使用Erlang开发,基于AMQP协议。

优点

  1. 开源,性能优秀,稳定性保障(据说与原生WebSocket差不多)
  2. 提供可靠性投递模式,返回模式
  3. 与SpringAMQP整合,API丰富
  4. 集群模式丰富,镜像队列模型等等
  5. 高可用性,高可靠性

AMQP是个啥

这是一个使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能的协议。

一些概念

Server

又称为Broker,接受客户端连接,实现AMQP实体服务

Connection

应用程序与Broker的连接

Channel

网络信道,进行数据读写的通道,客户端可以建立多个Channel,每个Channel代表一个会话任务

Message

由Properties和Body部分组成,Properties是消息的修饰部分,Body是消息体的内容部分

Virual Host

虚拟地址,用于逻辑隔离,可以拥有若干个Exchange和Queue,却不能有名字相同的Exchange、Queue,是最上层的消息路由

Exchange

交换机,接收消息,根据路由键转发消息到绑定的队列

Binding

Exchange和Queue之间的虚拟连接,可以包含routingKey

RoutingKey

一个路由规则,虚拟机可用它来确定如何路由一个特定消息到队列中去

Queue

消息队列,保存消息并转发给消费者。

这是我自己画的一张相关概念之间的联系图。
RabbitMQ的基本概念