“分类:RabbitMQ”的版本间差异
跳到导航
跳到搜索

无编辑摘要 |
|||
(未显示同一用户的4个中间版本) | |||
第3行: | 第3行: | ||
<center>[[File:Rabbitmq_logo.png|400px]]</center> | <center>[[File:Rabbitmq_logo.png|400px]]</center> | ||
== 关于 == | == 关于 == | ||
RabbitMQ 是一款基于'''Erlang'''语言开发,开源的分布式消息中间件,支持'''AMQP'''(Advanced Message Queued Protocol)协议,支持'''Java'''、Golang、php、python等多种开发语言客户端。 | |||
=== 特性 === | |||
* '''可靠性''':通过支持:'''消息持久化'''、'''事务'''、'''消费和传输的 ack''' 等来确保可靠性; | |||
* '''路由机制''':支持主流的订阅消费模式,如广播,订阅,headers 匹配等; | |||
* '''扩展性''':多个 RabbitMQ 节点可以组成一个'''集群''',也可以根据实际业务情况'''动态地扩展集群中节点'''; | |||
* '''高可用性''':队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可用; | |||
* 多种协议:RabbitMQ 除了原生支持 AMQP 协议,还支持 STOMP,MQTT 等多种消息中间件协议; | |||
* 多语言客户端:RabbitMQ 几乎支持所有常用语言,比如 Java、Python、Ruby、PHP、C#、JavaScript 等; | |||
* 管理界面:RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息、集群中的节点等; | |||
* 插件机制:RabbitMQ 提供了许多插件,以实现从多方面进行扩展,当然也可以编写自己的插件。 | |||
=== 主要应用场景 === | |||
# '''异步处理''': | |||
#: 将业务中属于非核心或不重要的流程部分,使用消息异步通知的方式发给目标系统,这样主业务流程无需同步等待其他系统的处理结果,从而达到系统快速响应的目的。 | |||
# '''应用解耦''': | |||
#: 基于消息订阅机制实现业务扩展。 | |||
#: 例如:电商下单场景,用户下单之后,产生一条订单消息,然后仓库模块订阅订单消息发货、积分模块可以订阅订单消息增加积分、短信模块可用订阅订单消息发送短信等等。 | |||
# '''流量削峰''': | |||
#: 因为上下游系统之间处理流量的能力存在差异,消息队列可以起到调节作用,让下游系统可以匀速处理流量。 | |||
#: 例如:以支付订单成功,通知仓库发货为例,如果目前订单模块支持1000的并发,仓库发货支持100的并发,这种上游订单模块支持较高的并发,下游仓库模块支持较低的并发,并发处理能力之间存在差异,如果下单后直接通知仓库发货,仓库模块会挂掉,那么可以引入消息队列,订单支付成功后,产生订单消息,仓库模块可以订阅订单消息,慢慢排队发货。 | |||
== RabbitMQ == | |||
=== 基础 === | |||
# “'''[[RabbitMQ:安装部署]]'''” | |||
# “'''[[RabbitMQ:核心概念]]'''” | |||
# “'''[[RabbitMQ:工作模式]]'''” | |||
# “'''[[RabbitMQ:命令行、管理平台]]'''” | |||
=== Java === | |||
# “'''[[RabbitMQ:Java(关键代码)]]'''” | |||
# “'''[[RabbitMQ:Java(工作模式)]]'''” | |||
=== SpringBoot === | |||
# “'''[[RabbitMQ:SpringBoot集成]]'''” | |||
# “'''[[RabbitMQ:SpringBoot(工作模式)]]'''” | |||
# “'''[[RabbitMQ:SpringBoot(延迟消息、死信队列)]]'''” | |||
=== 高级专题 === | === 高级专题 === | ||
# “'''[[RabbitMQ:高级特性]]'''” | |||
# “'''[[RabbitMQ:Consumer Acknowledgements and Publisher Confirms]]'''” | |||
# “'''[[RabbitMQ:Publisher Confirms实现]]'''” | |||
== 参考 == | == 参考 == | ||
第47行: | 第50行: | ||
# [https://www.cnblogs.com/ZhuChangwu/p/14093107.html cnblogs:保姆级别的RabbitMQ教程] | # [https://www.cnblogs.com/ZhuChangwu/p/14093107.html cnblogs:保姆级别的RabbitMQ教程] | ||
# [https://www.liaoxuefeng.com/wiki/1252599548343744/1282385960239138 廖雪峰的官方网站:SpringBoot集成RabbitMQ] | # [https://www.liaoxuefeng.com/wiki/1252599548343744/1282385960239138 廖雪峰的官方网站:SpringBoot集成RabbitMQ] | ||
带看:(官网手册) | |||
# [https://www.rabbitmq.com/publishers.html#data-safety Publishers] | |||
# [https://www.rabbitmq.com/consumers.html#acknowledgement-modes Consumers] |
2022年10月31日 (一) 21:10的最新版本

关于
RabbitMQ 是一款基于Erlang语言开发,开源的分布式消息中间件,支持AMQP(Advanced Message Queued Protocol)协议,支持Java、Golang、php、python等多种开发语言客户端。
特性
- 可靠性:通过支持:消息持久化、事务、消费和传输的 ack 等来确保可靠性;
- 路由机制:支持主流的订阅消费模式,如广播,订阅,headers 匹配等;
- 扩展性:多个 RabbitMQ 节点可以组成一个集群,也可以根据实际业务情况动态地扩展集群中节点;
- 高可用性:队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可用;
- 多种协议:RabbitMQ 除了原生支持 AMQP 协议,还支持 STOMP,MQTT 等多种消息中间件协议;
- 多语言客户端:RabbitMQ 几乎支持所有常用语言,比如 Java、Python、Ruby、PHP、C#、JavaScript 等;
- 管理界面:RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息、集群中的节点等;
- 插件机制:RabbitMQ 提供了许多插件,以实现从多方面进行扩展,当然也可以编写自己的插件。
主要应用场景
- 异步处理:
- 将业务中属于非核心或不重要的流程部分,使用消息异步通知的方式发给目标系统,这样主业务流程无需同步等待其他系统的处理结果,从而达到系统快速响应的目的。
- 应用解耦:
- 基于消息订阅机制实现业务扩展。
- 例如:电商下单场景,用户下单之后,产生一条订单消息,然后仓库模块订阅订单消息发货、积分模块可以订阅订单消息增加积分、短信模块可用订阅订单消息发送短信等等。
- 流量削峰:
- 因为上下游系统之间处理流量的能力存在差异,消息队列可以起到调节作用,让下游系统可以匀速处理流量。
- 例如:以支付订单成功,通知仓库发货为例,如果目前订单模块支持1000的并发,仓库发货支持100的并发,这种上游订单模块支持较高的并发,下游仓库模块支持较低的并发,并发处理能力之间存在差异,如果下单后直接通知仓库发货,仓库模块会挂掉,那么可以引入消息队列,订单支付成功后,产生订单消息,仓库模块可以订阅订单消息,慢慢排队发货。
RabbitMQ
基础
Java
SpringBoot
高级专题
- “RabbitMQ:高级特性”
- “RabbitMQ:Consumer Acknowledgements and Publisher Confirms”
- “RabbitMQ:Publisher Confirms实现”
参考
- RabbitMQ Tutorials
- 梯子教程:RabbitMQ
- 梯子教程:RabbitMQ面试题
- cnblogs:保姆级别的RabbitMQ教程
- 廖雪峰的官方网站:SpringBoot集成RabbitMQ
带看:(官网手册)
分类“RabbitMQ”中的页面
以下13个页面属于本分类,共13个页面。
R
- RabbitMQ:Consumer Acknowledgements and Publisher Confirms
- RabbitMQ:Jackson2JsonMessageConverter分析
- RabbitMQ:Java(关键代码)
- RabbitMQ:Java(工作模式)
- RabbitMQ:Publisher Confirms实现
- RabbitMQ:SpringBoot集成
- RabbitMQ:SpringBoot(工作模式)
- RabbitMQ:SpringBoot(延迟消息、死信队列)
- RabbitMQ:命令行、管理平台
- RabbitMQ:安装部署
- RabbitMQ:工作模式
- RabbitMQ:核心概念
- RabbitMQ:高级特性