Rabbitmq消息隊列:Route路由模式簡單應用

一、生產者

  在發佈訂閱模式的代碼基礎上,進行一定的調整,將聲明交換機的路由模式調整爲direct路由模式

  這個時候需要用到路由key,類似於給消息用來分類的標籤

  分別發送三條消息,發向GetOne、GetTwo和GetThree三個路由key:

//聲明交換機(類型direct->路由模式)
channel.exchangeDeclare(EXCHANGE,"direct");
//發送消息到交換機(交換機無法持久化,如果消息沒有及時接收,重啓後容易丟失數據)
channel.basicPublish(EXCHANGE,"GetOne",null,"這是發送給GetOne的消息".getBytes());
channel.basicPublish(EXCHANGE,"GetTwo",null,"這是發送給GetTwo的消息".getBytes());
channel.basicPublish(EXCHANGE,"GetThree",null,"這是發送給GetThree的消息".getBytes());

二、消費者

  定義兩個消費者GetOne、GetTwo,在發佈訂閱模式的代碼基礎上,進行一定的調整。

  綁定交換機時,第二個參數附加需要的路由key,如果需要綁定多個,就分多次綁定

  GetOne綁了GetOne、GetThree兩個路由key,如下:

//將隊列綁定到交換機(第二個參數是路由的key,需要多個的話就綁多個)
channel.queueBind(QUEUE,EXCHANGE,"GetOne");
channel.queueBind(QUEUE,EXCHANGE,"GetThree");

  GetTwo綁了GetTwo一個路由key,如下:

//將隊列綁定到交換機
channel.queueBind(QUEUE,EXCHANGE,"GetTwo");

三、運行結果

  首頁也是先啓動生產者,初始化需要用到的交換機test-route。

  

  先後依次啓動消費者GetOne和GetTwo,再次啓動生產者,結果如下:

  

  

 

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