RBMQ案例五:主題模式

之前的教程中,我們改進了日誌系統。我們沒有使用只能進行虛擬廣播的扇出交換器,而是使用了直接交換器,並獲得了選擇性接收日誌的可能性。
雖然使用直接交換改進了我們的系統,但它仍然有侷限性——它不能基於多個標準進行路由。
在我們的日誌系統中,我們可能不僅希望根據嚴重性訂閱日誌,還希望根據發出日誌的源訂閱日誌。您可能從 syslog unix 工具知道這個概念,它根據嚴重性(info/warn/crit...)和設施(auth/cron/kern...)路由日誌。
這會給我們很大的靈活性——我們可能只想聽來自“cron”的嚴重錯誤,但也想聽來自“kern”的所有日誌。
要在我們的日誌系統中實現它,我們需要了解更復雜的主題交換。
 
發送到主題交換的消息不能有任意的 routing_key - 它必須是一個單詞列表,由點分隔。詞可以是任何東西,但通常它們指定與消息相關的一些特徵。一些有效的路由鍵示例:“ stock.usd.nyse ”、“ nyse.vmw ”、“ quick.orange.rabbit ”。路由鍵中的單詞可以有任意多個,最多不超過 255 個字節。
綁定密鑰也必須採用相同的形式。主題交換背後的邏輯 類似於直接交換——使用特定路由鍵發送的消息將被傳遞到與匹配綁定鍵綁定的所有隊列。然而,綁定鍵有兩個重要的特殊情況:
  • *(星號)只能代替一個詞。
  • (hash) 可以替代零個或多個單詞。
 

一、創建一個exchange

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章