2016-03-01 77 views
1

我剛剛開始使用IBM MQ進行某些通信的軟件。使用單個隊列的MQ AtoB和AtoC通信?

據我所知,MQ可用於多對一通信和一對多通信。

假設有3個業務應用程序A,B和C.A想要使用MQ向B發送消息,並向C發送另一個消息,但A僅使用一個隊列Queue1。

現在我的問題是,如果我們可以定義(以MQMD或其他方式)某個消息僅適用於B NOT for C,因此只有B可以在隊列B可用時從隊列1中檢索它。如果不是,我們如何才能做到這一點,如果它是可能的話?

另一件事是我們可以爲A-B通信創建一個單獨的隊列Queue2嗎?

+1

我不確定的是,如果其他技術有相同的規則,例如的RabbitMQ – 2016-03-01 12:12:11

回答

2

最好使用單獨的隊列。例如,使用隊列QA2B爲應用程序A發送消息給應用程序B和QA2C,以便應用程序A嚮應用程序C發送消息。這樣,通信就被分離出來,並且您可以從管理上限制應用程序B接收對C的消息,反之亦然。

有可能只使用一個隊列,其中應用程序A在發送消息時設置一個消息屬性,該消息屬性表示類似「消息用於B」或「消息用於C」。應用程序B在接收消息時使用選擇器來匹配屬性值「B消息」。同樣,應用程序C也使用選擇器「C for Message」並接收消息。但是請注意,如果B或C收到沒有任何選擇器的消息,則消息可能會被誤用。