前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ学习系列教程五四:Topic Exchange的使用

RabbitMQ学习系列教程五四:Topic Exchange的使用

原创
作者头像
凯哥Java
修改2019-07-15 11:15:55
1.2K0
修改2019-07-15 11:15:55
举报
文章被收录于专栏:凯哥Java

Topic Exchange介绍:

Topic Exchange:所有发送到Topic Exchange的消息被转发到所有关系rotekey中指定的topic的queue上。

Exchange将routekey和某topic进行模糊匹配,此时队列就需要绑定一个topic

注意:模糊匹配时可以使用通配符的。

通配符使用规则,如下:

官方关于topic exchange的介绍:

运行示意图:

从上图中,我们可以看到queues中使用的key时模糊的。如usa.#这个key,可以接收到usa.news及usa.weather的消息。

代码示例:

通配符# 匹配一个或多个单词的:

生产者:

说明:

我们在生产者中,设置了三个routingkey。都是以user开头的。不同的就是:在routingKey3Delete这个key的user后面是两个单词。

消费者:

我们看到了,在消费者中我们使用了#这个通配符。表示一个或多个单词的模糊匹配。

启动消费者,我们从管控台查看queues:

Queues中已经有了我们的:test_topic_queue了。

我们在启动生产者,看看:

消费结果:

我们发现,三个都被消费了。说明了#通配符支持多个单词模糊。

下面我们测试*号:单个单词的

修改代码:

重启消费者,查看管控台:

我们发现绑定了两个rotingkey.一个是user.#一个是user.*.在这里我们要测试单个单词的模糊匹配。所以,需要将user.#这个routingkey解绑了。

怎么解绑?我们先在管控台上,点击对应routingkey后面的unbing即可(代码可以。在后面将讲解到)。

解绑后:

此时我们在启动生产者,看看consummer端消费情况:

我们发现,只有两条被消费了。运行结果和我们预期的一致。

总结:

Topic exchange使用的时候,在消费者端指定exchangetype类型。在消费者端,需要注意,routingkey中#号和*的却别。

下节预告:在下节中,我们将要讲解fanout exchange的使用

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Topic Exchange介绍:
    • 通配符使用规则,如下:
      • 官方关于topic exchange的介绍:
      • 通配符# 匹配一个或多个单词的:
      • 下面我们测试*号:单个单词的
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档