第八章 java客户端-Topic交换机

本文介绍了如何使用一种灵活的交换机,支持#和*通配符,以实现队列的动态匹配。通过Java代码和SpringAmqp示例展示了如何设置queue绑定,以及如何利用路由key让不同队列接收不同模式的消息。
摘要由CSDN通过智能技术生成

这种交换机和其他交换机不一样,他是更加灵活的交换机。比广播交换机 直连交换机更厉害、

他有2中通配符

我现在举个例子

queue1 绑定的队列 ---------------------------------china.#

queue2 绑定的队列 ---------------------------------japan.#

queue3 绑定的队列 --------------------------------- #.weather

queue4 绑定的队列 --------------------------------- #.news

这时候只要你发送消息的时候队列写的是 china.news  china.1.news    china.hellow.news  都会跑到队列1  只要你是以china为前缀

这时候只要你发送消息的时候队列写的是 asdas.news  chin.news    china.hellow.news  都会跑到队列4  只要你是以china为前缀

如果你写的是#.#就是所有,任务消息都可以收到

符号“#”表示通配符可以匹配0个或者多个单词。例如,“china.#”可以匹配所有的以“china”为前缀的主题,例如“china.beijing”,“china.shanghai.weather”等等。

符号“ * ”表示通配符:可以匹配一个单词。例如,“china.*”可以匹配所有的以“china”为前缀并且后面只有一个单词的主题,例如“china.beijing”,“china.shanghai”,但是“china.shanghai.weather”不会被匹配。

首先先创建2个队列  topic.queue1  topic.queue2

创建交换机

然后进行绑定

用java代码实现如何发送

创建一个MqTopicTest

创建一个SpringAmqpTopicTest并发送消息 

我截图一下绑定的关系

消息者1会拿到消息

测试 1                               如果我队列1绑定的是#.china.#

我在此测试

是这样的

测试 2                               如果我队列1绑定的是#.china.*

ok可以收到

收不到
意思就是#.可以以china为后缀,但是有(.*)这有表示后面可以跟1个单词

测试 3                          想用2个队列都收到

可以路由key 写 dasdas.china.new

ok都可以收到

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值