rabbitmq不同模式的交换机使用
2024-10-18 23:34:46
交换机的功能主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout(headers模式不怎么使用了,这里不做介绍)
fanout模式(广播模式):
会将消息发送给所有队列
fanout模式,消费者将队列跟交换器进行绑定时,可以不用指定具体的routingKey
direct模式(直连模式):
通过完全匹配routingKey来使交换机与哪个队列绑定(一个交换机绑定队列时,可以有多个routingKey)
topic模式(模糊匹配模式):
模糊匹配routingKey来使交换机与哪个队列绑定。匹配交换器的匹配符
*(星号)表示一个单词
#(井号)表示零个或者多个单词
如果消费者端的路由关键字只使用【#】来匹配消息,在匹配【topic】模式下,它会变成一个分发【fanout】模式,接收所有消息。
如果消费者端的路由关键字中没有【#】或者【*】,它就变成直连【direct】模式来工作。
特殊例子:
消费者端路由关键字 "*", 不能接收到生产者端发来路由关键字为空的消息
消费者端路由关键字 "#", 能接收到生产者端发来路由关键字为空的消息
消费者端路由关键字"#.*", 能接收到生产者端以“..”为关键字的消息, 如果发送来的消息只有一个单词,不能匹配上
这三种模式的使用示例,可以查看源码:https://github.com/xuwenjin/xwj_repo/tree/master/spring-activemq
最新文章
- History API与浏览器历史堆栈管理
- MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
- 读取hdfs文件之后repartition 避免数据倾斜
- 利用Generator解决异步回调原理
- Bower 自定义组件文件夹名称
- 在SQL2008配置数据库镜像1418错误的处理
- 如何获取QQ里的截图app?
- 【Spring开发】—— Spring Core
- HTTPS的工作原理
- python string 文本常量和模版
- linux下查看所有用户及所有用户组
- PHP 获取系统信息,PHP 获取服务器详细信息
- 利用python生成交换机的VRF配置文件
- 移动设备(手机)的唯一ID有哪些
- 【转】Linux服务部署--Java(三) Nginx
- ubuntu下安装CAJ阅读器
- vuex数据管理-数据共享
- linux安装activemq
- 【node.js】函数、路由
- Android Studio更改工程名异常解决方案 :can't rename root module