如何将IBM MQ主题设置为仅在相同的应用程序中共享消息



这就是我想用IBM MQ实现的目标:

我有一个主题,两个不同的应用程序(A1,A2)订阅了这个主题。每个应用程序有2个实例,即(A1-I1、A1-I2、A2-I1、A2-I2)。当消息(M1)发布到主题时,该消息将被两个应用程序A1 &A2。但是在A1中,只有一个实例(A1- i1或A1- i2)可以接收到此消息M1, A2的实例也是如此。

是否可以使用IBM MQ主题和JMS?

我查阅了评论中提到的共享订阅,但我发现它(IBM MQ)有一个限制,即共享订阅只能由一个JVM访问,即两个应用程序实例不能同时访问共享订阅,所以我放弃了这个纯粹的发布/订阅方向。

我通过使应用程序侦听订阅的目标队列而不是直接订阅来使其工作。我在队列管理器订阅SUB.A1中定义了目标队列SUB.A1。QUEUE和订阅SUB.A2,目标队列为SUB.A2.QUEUE。应用程序A1的所有实例都将监听SUB.A1。QUEUE和A2到SUB.A2.QUEUE。一切都如预期般顺利。

上面的设置是连接到同一个队列管理器的所有应用程序。如果有一个由多个qm组成的队列管理器集群,只需将订阅目的地队列定义为集群队列,就可以正常工作了

最新更新