1. 程式人生 > >5.rabbitmq--萬用字元模式Topics

5.rabbitmq--萬用字元模式Topics

rabbitmq--萬用字元模式Topics

topic模式也稱為主題模式,其實他相對於routing模式最大的好處就是他多了一種匹配模式的路由,怎麼理解匹配呢,其實就相當於我們之前正則的.*這種,不過他的匹配機制可能不是這種(其實除了匹配規則外,他的作用就和routing模式一樣 ),而他的工作流程圖如下:

OK! 先說一下他的匹配規則:

繫結鍵binding key也必須是這種形式。以特定路由鍵傳送的訊息將會發送到所有繫結鍵與之匹配的佇列中。但繫結鍵有兩種特殊的情況: 
①*(星號)僅代表一個單詞 
②#(井號)代表任意個單詞

示例:

以上圖為例:

*.orange.* :  匹配以 任意一個單詞字元開頭中間包含 .orange. 以任意一個單詞字元結尾 的字串。比如 a.orange.b, sdfsd.orange.fdsfsdf 等(注意是一個單詞)。

lay.# :只要一lay.開頭的都匹配,他可以匹配lay.a, lay.a.b, lay.b.c等。

這樣是不是很方便,比如我們想將log的發給q1佇列,其他的發給q2,那麼我們只需要定義log.#、或者log.*,那麼你傳送給q1佇列的資料就是log日誌的訊息。