RabbitMQ五种消息类型

大体分为两类:12属于点对点;345属于发布订阅模式(一对多)

点对点模式P2Ppoint to point)模式包含三个角色:

消息队列(queue),发送者(sender),接收者(receiver

每个消息发送到一个特定的队列中,接收者从中获得消息

队列中保留这些消息,直到他们被消费或超时

特点:

1. 每个消息只有一个消费者,一旦消费,消息就不在队列中了

2. 发送者和接收者之间没有依赖性,发送者发送完成,不管接收者是否运行,都不会影响

消息发送到队列中(我给你发微信,不管你看不看手机,反正我发完了)

3. 接收者成功接收消息之后需向对象应答成功(确认)

如果希望发送的每个消息都会被成功处理,那需要P2P

发布订阅模式publishPub/subscribeSub

pub/sub模式包含三个角色:交换机(exchange),发布者(publisher),订阅者

subcriber

多个发布者将消息发送交换机,系统将这些消息传递给多个订阅者

特点:

1. 每个消息可以有多个订阅者

2. 发布者和订阅者之间在时间上有依赖,对于某个交换机的订阅者,必须创建一个订阅

后,才能消费发布者的消息

3. 为了消费消息,订阅者必须保持运行状态;类似于,看电视直播。

如果希望发送的消息被多个消费者处理,可采用本模式

简单模式

RabbitMQ本身只是接收,存储和转发消息,并不会对信息进行处理!

类似邮局,处理信件的应该是收件人而不是邮局!

《RabbitMQ五种消息类型》

 

工作队列模式

 

当我们运行许多消费者程序时,消息队列中的任务会被众多消费者共享,但其中某一个消息只会被一个消费者获取(100支肉串20个人吃,但是其中的某支肉串只能被一个人吃)

避免消息堆积?

1. workqueue,多个消费者监听同一个队列

2. 接收到消息后,通过线程池,异步消费

《RabbitMQ五种消息类型》

发布订阅模式

就是玩抖音快手,众多粉丝关注一个视频主,视频主发布视频,所有粉丝都可以得到视频通知

 

P生产者发送信息给X路由,X将信息转发给绑定X的队列

X队列将信息通过信道发送给消费者,从而进行消费

整个过程,必须先创建路由

《RabbitMQ五种消息类型》

路由模式

 

路由会根据类型进行定向分发消息给不同的队列,如图所示

可以理解为是快递公司的分拣中心,整个小区,东面的楼小张送货,西面的楼小王送货

《RabbitMQ五种消息类型》

通配符模式

路由键支持模糊匹配

《RabbitMQ五种消息类型》

 

    原文作者:Youngyoung666
    原文地址: https://blog.csdn.net/weixin_35787722/article/details/116518755
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞