RabbitMQ學習系列教程五四:Topic的使用
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的使用


TAG:凱哥java |