作者:陈俊凯660638 | 来源:互联网 | 2023-08-13 12:09
rabbit有direct路由模式,topic通配符主题订阅模式,fanout广播发布模式,下面将逐一详细的讲解三种模式的用法及应用场景。
一、direct路由模式
1.图解
该方式一个路由键对应一个消息队列,一个消息队列可以对应多个路由键,一个消息队列对应一个消费者,当一个队列下有多个消费者时,MQ采用的是轮询机制,选取一个消费者消费该队列下的消息,其他消费者则轮空。该模式给消息指明了准确的路线,告诉消息必须按照我制定的路线规则来走,适合于比较简单的场景,缺点是路由规则不够灵活。
2.应用场景
单发送,单接收的简单的应用场景
二、topic通配符主题订阅模式
1.图解
基本思想和路由模式是一样的,只不过路由键支持模糊匹配,符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词,路由规则变得灵活多变,可拓展性非常的强
2.应用场景
①.单发送,单接收的应用场景
②.多发送,单接收的应用场景(主要)
三、fanout广播模式
1.图解
该模式之所以称之为广播模式,是因为他的交换机没有绑定任何路由规则,交换机直接和队列相关联,所有和交换机关联的队列都会收到生产者发出的消息,也就是说该模式的生产者在发出消息的那一刻并不知道消息将会发给谁,将会有多少队列接受消息,这样的机制增加了很多的不确定性,但是也给适合该模式的场景提供了很大的便利。
2.应用场景
①单发送,多接收的应用场景
四、总结
1.topic和direct两种模式的消息路线为:生产者–>交换机–>路由键–>队列–>消费者–>消息处理代理类
2.fanout模式的消息路线为:生产者–>交换机–>队列–>消费者–>消息处理代理类
3.三种模式队列下的消息都采用轮询机制选取一个队列下的众多消费者中的一个来消费消息
五、提出问题
我们可不可以利用现有的三中模式实现下图中的消息传递机制?
欲知详情,请看下回分解