当前位置:   article > 正文

rabbitmq几种工作模式_中间件rabbitmq六种工作模式(干货)

rabbit的工作模式

RabbitMQ的六种工作模式:

1.简单模式

5c7ab116e15975b415bd6bd6bc1cdc3f.png
消息产生将消息放入队列消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)
4b18b566b1e50e37372169ac60503423.png

2.work工作模式(资源的竞争)

95ac12bf64fd4a80e3e679d1fb672834.png
消息产生者将消息放入队列消费者可以有多个,消费者1,消费者2,同时监听同一个队列,消息被消费?C1 C2共同争抢当前的消息队列内容,谁先拿到谁负责消费消息(隐患,高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用)一个生产者,多个消费者,每个消费者获取到的消息唯一,多个消费者只有一个队列

任务队列:避免立即做一个资源密集型任务,必须等待它完成,而是把这个任务安排到稍后再做。我们将任务封装为消息并将其发送给队列。后台运行的工作进程将弹出任务并最终执行作业。当有多个worker同时运行时,任务将在它们之间共享。

66ddd9a84262a94fbad6f56192215424.png
735ba5252d8a2027ce6893e468ec7cb2.png

3.publish/subscribe发布订阅(共享资源)

bfb15d4b5f084dfe459e14f37581b848.png
X代表交换机rabbitMQ内部组件,erlang 消息产生者是代码完成,代码的执行效率不高,消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费一个生产者发送的消息会被多个消费者获取。一个生产者、一个交换机、多个队列、多个消费者

生产者:可以将消息发送到队列或者是交换机。

消费者:只能从队列中获取消息。

如果消息发送到没有队列绑定的交换机上,那么消息将丢失。

交换机不能存储消息,消息存储在队列中

相关场景:邮件群发,群聊天
89066fabb504b021c005728175637afc.png
5c7510c8492792bb8715e41f5d7f0fdf.png

4.routing路由模式

609b8d4beecb1164bf078947db3ac418.png
消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;根据业务功能定义路由字符串
3a9f3603a10c1f8128a6d17664c36fe0.png
2fbb89519c061a0b457a1bd943bc37d1.png

5.topic 主题模式(路由模式的一种)

e50175266b6c935cd2be3b09d6b5387b.png
星号井号代表通配符星号代表多个单词,井号代表一个单词路由功能添加模糊匹配消息产生者产生消息,把消息交给交换机交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费
6cac7ffb167ab114101e7cc42d3580ce.png
7ccd47110ce437d2a1576bd75302afe2.png

6.RPC

580f75d0c17df86ee0761a928d2ee0ea.png

RPC需要涉及消息的两个重要属性:

  • replyTo: 存储回调队列的名称
  • correlationId: 唯一标识本次的请求,主要用于RPC调用

如何实现:

1. RPC客户端启动后,创建一个匿名、独占的、回调的队列

2. RPC客户端设置消息的2个属性:replyTo和correlationId,然后将消息发送到队列rpc_queue

3. RPC服务端在队列rpc_queue上等待消息。RPC服务端处理完收到消息后,然后将处理结果封装成消息发送到replyTo指定的队列上,并且此消息带上correlationId(此值为收到消息里的correlationId)

4. RPC客户端在队列replyTo上等待消息,当收到消息后,它会判断收到消息的correlationId。如果值和自己之前发送的一样,则这个值就是RPC的处理结果


以上就是rabbitmq的六种工作模式

记录学习,每天进步一点点的橘子大王。

喜欢就关注我把。

df6cdbd16651255f4b7dc8c41ea6a7ef.png
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/594768
推荐阅读
相关标签
  

闽ICP备14008679号