RabbitMq消息队列

RabbitMq概念

在消息的传输过程中保存消息的容器,多用于系统之间的异步通信

RabbitMq的优势

1、应用解耦

在电商平台中,用户下订单调用订单系统,此项订单系统还需调用库存系统,支付系统,物流系统。此时会产生两个问题:

1、如果库存系统出现了故障,会造成整个订单系统崩溃

2、如果需求修改,新增一个新的系统,此时必须修改订单系统的代码

 

 

如果在系统中引入MQ,即订单系统将消息先发送到MQ,MQ再转发到其他系统,则会解决以下问题:

1、由于订单系统只发消息给MQ,不直接对接其他系统,如果库存系统出现故障,不影响整个订单。

2、如果需求修改,新增了一个x系统,此时无需修改订单系统的代码,只需要修改MQ将消息发送给x系统即可

 

 

RabbitMq模式

RabbiMQ共有六种工作模式:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式、远程调用模式。

1.创建普通maven项目,添加RabbitMQ依赖:

1.简单模式的特点:

1、一个生产者对应一个消费者,通过队列进行消息传递

2、该模式使用direct交换机,direct交换机是Rabbitmq默认交换机

2、工作队列模式_概念

与简单模式相比,工作队列模式多了一些消费者,该模式也使用direct交换机,应用于处理消息较多的情况。特点如下:

1.一个队列对应多个消费者

2.一条消息只会被一个消费者消费

3.消息队列默认采用轮训的方式将平均发送给消费者

3.发布订阅模式

在开发过程中,有一些消息需要不同消费者进行不同的处理,如电脑网站的同一条促销信息需要短信发送、邮件发送、站内信发送等。此时可以使用发布订阅模式

特点:

1.生产者将消息发送给交换机,交换机将消息转发到绑定此交换机的每个队列中。

2.工作队列模式的交换机只能发送给一个队列,发布订阅模式的交换机能将消息发送给多个队列。发布订阅模式使用fanout交换机。

4.路由模式

使用发布订阅模式时,所有消息都会发送到绑定的队列中,但很多时候,不是所有消息都无差别的发布到所有队列中。比如电商网站的促销活动,双十一大促可能发布到所有队列;而一些小的促销活动为了节约成本,只发布到站内信队列。此时需要使用路由模式完成这一需求。

特点:

1、每个队列绑定路由关键字RoutingKey

2、生成者将带有RountingKey的消息发送给交换机,交换机根据RountingKey转发到指定队列。路由模式使用direct交换机

5.RabbitMQ通配符模式

通配符模式是在路由模式的基础上,给队列绑定带通配符的路由关键字,只要消息的RoutingKey能实现通配符匹配,就会将消息转发到该队列。通配符模式比路由模式更灵活,使用topic交换机。

通配符规则:

1.消息设置RoutingKey时,RoutingKey由多个单词构成,中间以.分割。

2.队列设置RoutingKey时,#可以匹配任意多个单词,*可以匹配任意一个单词。

 
posted @   小白不想写代码  阅读(160)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示