當前位置:
首頁 > 知識 > RabbitMQ學習系列教程五四:Topic的使用

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的使用

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

JVM學習系列學習六

TAG:凱哥java |