RabbitMq:6种工作模式通俗理解

RabbitMQ整体结构:

image.png

工作模式

1、工作队列Work queues

image.png
消费者轮询获取消息,即c1获得一个,c2获得下一个消息。虽然图上没有交换机,实际上使用的默认交换机。

2、发布订阅模式Publish/subscribe

image.png
交换机将生产者产生的消息分别发送给两个或多个队列,即两个队列消息一致,c1、c2获得的是同样的消息。例如,c1、c2为短信服务和邮件服务,生产者发送业务完成消息,交换机分别将该消息发送到两个队列,c1发送短信通知客户业务完成,同时c2也会发送邮件体通知客户业务完成。

3、路由模式Routing

image.png
交换机可以选择性的将消息发送给哪个通道。如选择error(routingkey),则两个队列均获得消息,选择info则只有一个队列获得消息。

4、通配符模式(与路由模式类似)Topics

image.png
即采用#和*通配符决定将消息发送给哪个队列。#可以匹配多个单词(.后的多个点),*匹配一个单词

5、Header 模式

header模式与routing不同的地方在于,header模式取消routingkey,使用header中的 key/value(键值对)匹配队列。
可由map保存键值对,使用时参数routingkey为空字符串,key为指定交换机,value为指定的routingkey(类似意思)。

6、RPC

image.png
即生产者也是消费者,消费者也是生产者,由生产者使用RPC发送调用消息,消费者获得调用信息,消费者处理后,此时从消费者变为生产者,生产处理后的结果信息,发送给生产者,生产者获得信息。