天天看點

RabbitMQ exchange的幾種訂閱類型

作者:貴哥說Java創業

Exchange 分發消息時根據類型的不同分發政策有差別,目前共四種類型:direct、fanout、topic、headers 。headers 比對 AMQP 消息的 header 而不是路由鍵,此外 headers 交換器和direct 交換器完全一緻,但性能差很多,目前幾乎用不到了,是以直接看另外三種類型:

Direct 鍵(routing key)分布

Direct:消息中的路由鍵(routing key)如果和 Binding 中的 binding key 一緻,交換器就将消息發到對應的隊列中。它是完全比對、單點傳播的模式。

RabbitMQ exchange的幾種訂閱類型

Fanout(廣播分發)

Fanout:每個發到 fanout 類型交換器的消息都會分到所有綁定的隊列上去。很像子網廣播,每台子網内的主機都獲得了一份複制的消息。fanout 類型轉發消息是最快的。

RabbitMQ exchange的幾種訂閱類型

topic 交換器(模式比對)

topic 交換器:topic 交換器通過模式比對配置設定消息的路由鍵屬性,将路由鍵和某個模式進行比對,此時隊列需要綁定到一個模式上。它将路由鍵和綁定鍵的字元串切分成單詞,這些單詞之間用點隔開。它同樣也會識别兩個通配符:符号“#”和符号“*”。#比對 0 個或多個單詞,*比對不多不少一個單詞。

RabbitMQ exchange的幾種訂閱類型