LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

RabbitMQ最全详解(图文全面总结)

admin
2025年6月28日 21:54 本文热度 23

消息中间件是高并发架构的基石,之前谈过了RocketMQ和Kafka,今天接着详解RabbitMQ消息中间件@mikechen

RabbitMQ

RabbitMQ是一款使用Erlang语言开发的,实现了高级消息队列协议(AMQP)的开源消息中间件。

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议是应用层协议的一个开放标准,为面向消息的中间件设计。

Erlang语言,主要用于并发及分布式系统的开发,在电信领域应用广泛,OTP作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库。 

RabbitMQ特点

1.可靠性:RabbitMQ使用一些机制来保证可靠性, 如持久化、传输确认及发布确认等。

2.灵活的路由 :在消息进入队列之前,通过交换器来路由消息。

3.扩展性:多个RabbitMQ节点可以组成一个集群,也可以根据实际业务情况动态地扩展 集群中节点。

4.高可用性:队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队 列仍然可用。

5.多种协议:RabbitMQ除了原生支持AMQP协议,还支持STOMP, MQTT等多种消息 中间件协议。

6.多语言客户端:RabbitMQ 几乎支持所有常用语言,比如 Java、 Python、 Ruby、 PHP、 C#、 JavaScript 等。 

RabbitMQ架构设计

RabbitMQ架构,如下图所示:

RabbitMQ架构会涉及如下模型:Producer、Consumer、Queue、Exchange、Broker、RoutingKey、BindingKey。

 

RabbitMQ架构模型

1.Producer

消息生产者Producer:主要就是生成消息,通过信道(Channel),把消息发送给交换机(Exchange)。

消息一般可以包含 2 个部分:

  1. 消息体(payload):一般是一个带有业务逻辑结构的数据,比如:一个 JSON 字符串;

  2. 标签(Label):用来表述这条消息,比如:一个交换器的名称和一个路由键; 

2.Consumer

这个大家也比较清楚,就是消息消费者,就是接受消息的程序。

消费者监听RabbitMQ中的(Queue)队列中的消息,然后去消费。

备注:消息(Message)会一直留在队列里,直到被消费者(Consumer)消费。 

3.Queue

用于存储消息,如下图所示:

RabbitMQ 的生产者生产消息并最终投递到队列中,消费者可以从队列中获取消息并消费。

RabbitMQ中消息都只能存储在队列中,这一点和Kafka这种消息中间件相反。

多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊给多个消费者进行处理,如下图所示:

 

4.Exchange

生产者将消息发送到Exchange,由交换器将消息路由到一个或者多个队列中。

如下图所示:

这里的交互机会涉及如下四种类型:

  1. 直接Direct;

  2. 扇出Fanout ;

  3. 主题Topic ;

  4. 消息头Headers;

不同的类型有着不同的路由策略。

5.Broker

可以将一个RabbitMQ Broker看作一台RabbitMQ服务器,如下图所示:

上图展示了消息从生产者存入RabbitMQ Broker,以及消费者从Broker中消费数据的完整过程。

6.Routing Key

生产者将消息发给交换器的时候,一般会指定一个 RoutingKey,用来指定这个消息的路由规则。

如下图所示:

生产者可以在发送消息给交换器时,通过指定 RoutingKey 来决定消息流向哪里。

7.BindingKey

RabbitMQ 中通过绑定将交换器与队列关联起来,在绑定的时候一般会指定一个绑定键(BindingKey),这样 RabbitMQ 就知道如何正确地将消息路由到队列了。


阅读原文:原文链接


该文章在 2025/7/1 23:57:58 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved