我有一个有两个订阅者的主题。但是,其中一个订户将部署在一个集群中。那么,实际上(我认为?)群集将被视为多个订阅者。 我需要确保群集只消耗一条消息。
我不知道这样做的选项。 是否可以在集群和主题之间插入队列,然后让集群应用程序仅与插入的队列一起使用?
如果可以的话,通常如何让队列“订阅”主题?
我听到的另一个想法是在群集中建立克隆用户,之前有人听说过这个问题吗?
另一个想法是取消主题,只使用两个队列,这似乎是一个安全的解决方案?
使用WebSphere MQ
答案 0 :(得分:1)
您可以使用持久订阅来实现此目的。
以管理方式创建持久订阅并指定目标,基本上是一个队列,它将接收在指定主题上发布的发布。然后,您的群集应用程序可以从该目标获取消息。由于从队列中接收发布,因此只有一个应用程序实例会收到消息。
以下命令为主题“/ SPORTS / HOCKEY”创建持久订阅,目标队列为Q1。
DEFINE SUB(SPORTSUB) TOPICSTR(/SPORTS/HOCKEY) TOPICOBJ(SPORT) DESTQ(Q1)