RabbitMQ学习系列教程五四:Topic Exchange的使用
- RabbitMQ学习系列教程
- 时间:2019-07-14 09:11
- 3593人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
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的使用
上一篇: 你为什么那么努力
下一篇: Start UML 5.0