rabbitmq五种模式
1.简单模式
2.争抢模式(工作模式,工作争抢模式)
3.路由模式 route
4.发布订阅模式 fanout
5.主题模式 topic
6. RPC异步调用模式(不常用)
1.简单模式
当生产者发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式下,强调的一个队列queue只被一个消费者监听消费.
1.1 结构
生产者:生成消息,发送到交换机
交换机:根据消息属性,将消息发送给队列
消费者:监听这个队列,发现消息后,获取消息执行消费逻辑
1.2 应用场景
常见的应用场景就是一发,一接的结构
例如:
手机短信,邮件单发
2.争抢模式
强调的也是后端队列与消费者绑定的结构
2.1 结构
生产者:发送消息到交换机
交换机:根据消息属性将消息发送给队列
消费者:多个消费者,同时绑定监听一个队列,之间形成了争抢消息的效果
2.2 应用场景
抢红包
资源分配系统
3.路由模式
将消息携带routing key和队列绑定的routing key,如果匹配上了,就把消息大送给队列
4.发布订阅模式 fanout
交换机把数据发送给所有的队列
生产端:发送消息到交换机
交换机:由于是发布订阅模式,会将这个消息发送同步到后端所有与其绑定的队列
消息端:简单模式 1个队列绑定一个消费者 争抢模式 1个队列绑定多个消费者
应用场景
邮件的群发,广告的群发
5.主题模式 topic
非常类似于路由模式的结构,区别在于后端队列绑定交换机使用的路由key.
交换机绑定队列,不在使用具体的路由key,可以使用符号代替路由key值的规则
应用场景
实现多级传递的路由筛选工作.
三种交换机:
direct(路由) —>对应路由模式 —>100%routing key匹配上了,交换机才会把数据发送给队列
fanout(发布订阅) —>对应发布订阅模式 —>只要队列发布了交换机,就会把数据发送给队列,不会去管routing key是
否匹配
topic(主题)—>对应主题模式 —>可以定义多级路径,可以进行模糊匹配。