2016-03-01 29 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收到没有任何选择器的消息,则消息可能会被误用。