使用单个队列的 MQ AtoB 和 AtoC 通信?
MQ AtoB and AtoC communication using a single queue?
我刚刚开始开发使用 IBM MQ 进行某些通信的软件。
据我了解,MQ可以用于多对一通信和一对多通信。
假设有 3 个业务应用程序 A、B 和 C。A 想使用 MQ 向 B 发送一条消息,向 C 发送另一条消息,但 A 只使用一个队列 Queue1。
现在我的问题是,我们是否可以定义(在 MQMD 或其他方式中)特定消息仅用于 B 而不是 C,因此只有 B 可以在 B 可用时从 Queue1 检索它。如果不可能,我们怎么能做到这一点?
另外一个问题是我们可以做一个单独的队列Queue2 只用于A-B 通信吗?
最好使用单独的队列。例如,应用程序 A 使用队列 QA2B
向应用程序 B 发送消息,应用程序 A 使用队列 QA2C
向应用程序 C 发送消息。这样可以分离流量,您可以在管理上限制应用程序 B 接收消息适用于 C,反之亦然。
可以只使用一个队列,其中应用程序 A 在发送消息时设置一条消息 属性,内容类似于 "Message is for B" 或 "Message is for C"。应用程序 B 在接收消息时使用选择器来匹配 属性 值 "Message for B"。同样,应用程序 C 也使用选择器 "Message for C" 并接收消息。但请注意,如果 B 或 C 在没有任何选择器的情况下收到消息,则消息可能会落入坏人之手。
我刚刚开始开发使用 IBM MQ 进行某些通信的软件。
据我了解,MQ可以用于多对一通信和一对多通信。
假设有 3 个业务应用程序 A、B 和 C。A 想使用 MQ 向 B 发送一条消息,向 C 发送另一条消息,但 A 只使用一个队列 Queue1。
现在我的问题是,我们是否可以定义(在 MQMD 或其他方式中)特定消息仅用于 B 而不是 C,因此只有 B 可以在 B 可用时从 Queue1 检索它。如果不可能,我们怎么能做到这一点?
另外一个问题是我们可以做一个单独的队列Queue2 只用于A-B 通信吗?
最好使用单独的队列。例如,应用程序 A 使用队列 QA2B
向应用程序 B 发送消息,应用程序 A 使用队列 QA2C
向应用程序 C 发送消息。这样可以分离流量,您可以在管理上限制应用程序 B 接收消息适用于 C,反之亦然。
可以只使用一个队列,其中应用程序 A 在发送消息时设置一条消息 属性,内容类似于 "Message is for B" 或 "Message is for C"。应用程序 B 在接收消息时使用选择器来匹配 属性 值 "Message for B"。同样,应用程序 C 也使用选择器 "Message for C" 并接收消息。但请注意,如果 B 或 C 在没有任何选择器的情况下收到消息,则消息可能会落入坏人之手。