RabbitMQ的基本概念
这是个啥
是一个开源的消息代理和队列服务器,用来通过普通协议在不同的应用之间共享数据。使用Erlang开发,基于AMQP协议。
优点
- 开源,性能优秀,稳定性保障(据说与原生WebSocket差不多)
- 提供可靠性投递模式,返回模式
- 与SpringAMQP整合,API丰富
- 集群模式丰富,镜像队列模型等等
- 高可用性,高可靠性
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
消息队列,保存消息并转发给消费者。
这是我自己画的一张相关概念之间的联系图。