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

简介 TopicExchange介绍:TopicExchange:所有发送到TopicExchange的消息被转发到所有关系rotekey中指定的topic的queue上。Exchange将routekey和某topic进行模糊匹配,此时队列就需要绑定一个topic注意:模糊匹配时可以使用通配符的。通配符使用规则,如下:官方关于topicexchange的介绍:运行示意图:从上图中,我们可以看到queu

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

Top Top