本文不介紹rabbitMQ的理論知識,主要介紹春季如何使用Rabbit MQ。
聲明壹個消費者,聲明壹個隊列和交換(如果它們不存在),然後綁定。
生產者
默認交換機實際上是直連交換機,可以理解為字符串名為空的直連交換機。如果隊列沒有指定綁定開關,它將被綁定到默認開關,routingKey是隊列的名稱。
消費者
生產者
據稱,對應於隊列壹和隊列二的兩個消費者被綁定到myFanoutExchange。因為它們是扇區交換機,所以這裏的routingKey是任意的。
生產者
聲明多個消費者,假設現場,有人在彩票店中了彩票,各級電視臺都報道了這個消息。
通配符#:壹個或多個單詞,*壹個單詞。
生產者
執行結果
兩個消費者,壹個完全匹配,壹個隨機匹配。
生產者,上述兩個消費者可以收到消息。
我們再來看另壹種聲明消費者的方式。
以上是跳羚的例子。可以看出,要聲明隊列或交換機或者綁定它們,只需要構造相應的對象並放入spring容器中,而聲明壹個監聽器(消費者)則需要構造壹個MessageListenerContainer對象。ListenerContainer至少需要知道如何連接到ConnectionFactory,監聽哪些隊列消息,以及如何處理收到的消息。
這裏我們可以猜測壹個@RabbitListener對應壹個MessageListenerContainer,自動註入ConnectionFactory。隊列名稱可以由queues、queuesToDeclare或綁定中的隊列指定,接收到的消息的處理方法可以由@RabbitHandler指定,或者只需在相應的方法上鍵入@RabbitListener。
如何設置隊列的開關和其他屬性,如持久、自動刪除等。:使用@Bean構建相應的對象並設置相應的屬性,使用註釋@Queue或@Exchange設置相應的屬性。
如何設置消費者的其他屬性,如消息確認方式、預處理消息數量等。:通過@Bean的方式構造MessageListenerContainer的對象,只需設置相應的屬性,並在@RabbitListener中用註釋指定containerFactory,然後在containerFactory中設置即可。