有選擇性的接收消息
在訂閱模式中,生產者發布消息,所有消費者都可以獲取所有消息。
在路由模式中,將添加一個功能 - 只能訂閱一部分消息。 例如,只能將重要的錯誤消息引導到日志文件(以節省磁盤空間),同時仍然能夠在控制台上打印所有日志消息。
但是,在某些場景下,希望不同的消息被不同的隊列消費。這時就要用到Direct類型的Exchange。
在Direct模型下,隊列與交換機的綁定,不能是任意綁定了,而是要指定一個RoutingKey(路由key)
消息的發送方在向Exchange發送消息時,也必須指定消息的routing key。
P:生產者,向Exchange發送消息,發送消息時,會指定一個routing key。
X:Exchange(交換機),接收生產者的消息,然后把消息遞交給 與routing key完全匹配的隊列
C1:消費者,其所在隊列指定了需要routing key 為 error 的消息
C2:消費者,其所在隊列指定了需要routing key 為 info、error、warning 的消息