rabbitmq最经常出现的两个关键字:
1. exchange(交换机),通俗易懂就叫中间商。
2. queue(队列),通俗易懂就叫消费群体
3. routeKey(路由),通俗易懂就叫划分消费群体的分类
rabbitmq的简单流程就是provider(生产者)发送一条message(信息,通俗易懂叫命令)到exchange(交换机),exchange根据事先配置好的routeKey(路由规则)发送指定到queue(队列),收到命令后开始执行任务(通俗易懂的就是屋主(provider)想出租一个单间,但是只想租给女性(条件就是routeKey),于是就拖中介(exchange)发布租房信息,中介收到屋主发的信息后,根据屋主的条件就去找符合条件的承租人(queue),发信息到承租人。)
----- 解释得有点肤浅,可以看的就看一下吧 -------
exchange分为三种
Direct Exchange
直连型交换机,根据消息携带的路由键将消息投递给对应队列。
大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键 routing key 。
然后当一个消息携带着路由值为X,这个消息通过生产者发送给交换机时,交换机就会根据这个路由值X去寻找绑定值也是X的队列。(类比中介一对一服务客户)
Fanout Exchange
扇型交换机,这个交换机没有路由键概念,接收到消息后会直接转发到绑定到它上面的所有队列。(类比微商推荐产品,一键群发消息,让所有客户都见到)
Topic Exchange
主题交换机,它的特点就是在它的路由键和绑定键之间是有规则的。
简单地介绍下规则:
* (星号) 用来表示一个单词 (必须出现的)
# (井号) 用来表示任意数量(零个或多个)单词
通配的绑定键是跟队列进行绑定的,举个小例子
队列1 绑定键为 AA.1 队列2绑定键为 AA.#
发送信息时带AA.1的规则,则队列1和队列2都可以收到信息
发送信息时带AA.2的规则,则只有队列2可以收到信息
(类比微信在群里发一个公告,只有该群成员可见)