RabbitMQ:消息模型
RabbitMQ 提供了 6 种消息模型,分别为:单生产单消费模型(Hello World)、消息分发模型(Work queues)、Fanout 消息订阅模式(Publish/Subscribe)、Direct 路由模式(Routing)、Topic 匹配模式(Topic)、RPC 模式(RPC)。 ~ 本篇内容包括:RabbitMQ 6 种消息模型、RabbitMQ 6 种消息模型介绍
文章目录
一、RabbitMQ 6 种消息模型
RabbitMQ 提供了 6 种消息模型,分别为:单生产单消费模型(Hello World)、消息分发模型(Work queues)、Fanout 消息订阅模式(Publish/Subscribe)、Direct 路由模式(Routing)、Topic 匹配模式(Topic)、RPC 远程过程调用(RPC)。
如下图所示,其中 1、2 模型(单生产单消费模型与消息分发模型)都是较为简单的消费模型;3、4、5 模型三种都属于订阅模型,只不过进行路由的方式不同,第 6 种属于是 RPC,并不是 MQ。
二、RabbitMQ 6 种消息模型介绍
1、单生产单消费模型(Hello World)
单生产单消费模型,即基本消息模型或简单消费模型,即完成基本的一对一消息转发。
2、消息分发模型(Work queues)
在消息分发模型,多个收听者监听一个队列。
3、Fanout 订阅模型-消息订阅模式(Publish/Subscribe)
订阅模型-消息订阅模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息。
4、Direct 订阅模型-路由模式(Routing)
订阅模型-路由模式,此时生产者发送消息时需要指定 RoutingKey,即路由 Key,Exchange 接收到消息时转发到与 RoutingKey 相匹配的队列中。
5、Topic 订阅模型-匹配模式(Topic)
订阅模型-匹配模式,相比于前两种订阅模型,是更细致的分组,允许 在RoutingKey 中使用匹配符
*
:匹配一个单词#
:匹配0个或多个单词
6、RPC 远程过程调用(RPC)
RPC 远程过程调用,是客户端与服务器之间是完全解耦的,即两端既是消息的发送者也是接受者。
相关文章
- Freemarker-数字默认格式化问题
- Chrome扩展插件的开发--获取网页Cookies
- 【以解决】项目使用feign时候提示bean不能注入feign
- Docker设置容器开机自启
- 常用的淘汰算法
- 分布式事务seata,TCC,最大努力通知,最终一致性解决方案——总结三!
- java分布式事务——最终一致性,最大努力通知总结!
- java分布式事务——seata,tcc解决方案总结!
- 分布式系统–拜占庭将军问题(The Byzantine Generals Problem)
- idea中启动SSM项目
- 【编程】给定一个部门,变量出当前部门的所有父部门包含当前部门
- 【解疑】ConcurrentHashMap 在JDK1.7时候put或get时候,怎么定位到数据的?
- Spring的BeanFactoryPostProcessor
- spring注解开发AnnotationConfigApplicationContext的使用
- 匿名内部类方式实现线程的创建
- spring异常:No runnable methods 解决方法
- 基础IO的理解与操作 - fd
- 【图文教程】Centos 7下安装Hadoop-管杀管埋的
- 【Flink教程-已解决】在idea中测试flink的时候,提示读取文件时候错误,提示文件不存在解决方案
- frp 服务器端 frps 一键安装卸载脚本