使用单个队列进行MQ AtoB和AtoC通信?

时间:2016-03-01 09:57:51

标签: ibm-mq mq

我刚刚开始研究使用IBM MQ进行某些通信的软件。

据我所知,MQ可用于多对一通信和一对多通信。

假设有3个业务应用程序A,B和C.A希望使用MQ向B发送消息而将另一个消息发送到C但A只使用一个队列Queue1。

现在我的问题是,我们是否可以定义(在MQMD中或其他方式)某个消息仅针对B的B NOT,因此只有B可以在B可用时从Queue1中检索它。如果不是,我们怎么能这样做呢?

另一件事是我们可以为A-B通信创建一个单独的队列Queue2吗?

1 个答案:

答案 0 :(得分:2)

最好使用单独的队列。例如,对应用程序A使用队列QA2B向应用程序B发送消息,并为应用程序A使用QA2C向应用程序C发送消息。这样就可以分离出流量,并且可以通过管理方式限制应用程序B接收消息意为C,反之亦然。

可以只使用一个队列,其中应用程序A在发送消息时设置一个消息属性,其内容类似于“消息用于B”或“消息用于C”。应用程序B使用选择器在接收消息时匹配属性值“Message for B”。类似地,应用程序C也使用选择器“Message for C”并接收消息。但请注意,如果B或C接收到没有任何选择器的消息,则消息可能会出错。