RabbitMq:6种工作模式通俗理解
RabbitMQ整体结构:
工作模式
1、工作队列Work queues
消费者轮询获取消息,即c1获得一个,c2获得下一个消息。虽然图上没有交换机,实际上使用的默认交换机。
2、发布订阅模式Publish/subscribe
交换机将生产者产生的消息分别发送给两个或多个队列,即两个队列消息一致,c1、c2获得的是同样的消息。例如,c1、c2为短信服务和邮件服务,生产者发送业务完成消息,交换机分别将该消息发送到两个队列,c1发送短信通知客户业务完成,同时c2也会发送邮件体通知客户业务完成。
3、路由模式Routing
交换机可以选择性的将消息发送给哪个通道。如选择error(routingkey),则两个队列均获得消息,选择info则只有一个队列获得消息。
4、通配符模式(与路由模式类似)Topics
即采用#和*通配符决定将消息发送给哪个队列。#可以匹配多个单词(.后的多个点),*匹配一个单词
5、Header 模式
header模式与routing不同的地方在于,header模式取消routingkey,使用header中的 key/value(键值对)匹配队列。
可由map保存键值对,使用时参数routingkey为空字符串,key为指定交换机,value为指定的routingkey(类似意思)。
6、RPC
即生产者也是消费者,消费者也是生产者,由生产者使用RPC发送调用消息,消费者获得调用信息,消费者处理后,此时从消费者变为生产者,生产处理后的结果信息,发送给生产者,生产者获得信息。