gpt4 book ai didi

java - JMS pub sub 多个监听器,在分布式应用程序中对同一主题具有相同的订阅 ID

转载 作者:行者123 更新时间:2023-12-05 06:41:51 36 4
gpt4 key购买 nike

我正在开发分布式应用程序(4 个实例正在运行并由负载平衡控制。每个实例都是相同的。一个实例不会依赖另一个实例,每个实例将执行所有操作)。应用程序需要监听一个名为“结果”的 JMS 主题。 4 个实例将使用相同的订阅 ID 收听相同的主题。我正在使用 Camel pub sub。会发生什么,

  1. 所有实例都会收到相同的 JMS 消息吗? (申请中出现重复交易)
  2. 是否只有一个实例收到消息而其余实例不会收到消息?
  3. 如果问题 2 的答案是"is"。同一个实例会一直收到消息吗?

  4. 如果问题 3 的答案为"is"。另一个实例是否会收到消息,因为该实例已关闭?

我想在分布式应用程序中实现没有重复消息的 JMS pub sub。请解决我的疑问,如果我的问题不清楚,请抱歉。让我知道,我会提供更多详细信息。

最佳答案

1) 是的,所有实例都将获得已发布消息的副本。这就是发布/订阅消息传递模式。

2)没有

3) 和 4) 无效,因为所有消费者都会获得已发布消息的副本。

JMS 2.0规范描述了 Shared Subscription 的概念,其中多个订阅者/消费者共享(也称为负载平衡)在一个主题上发布的消息。所有消费者都使用相同的订阅 ID。

如果您的消息传递提供程序尚不支持 JMS 2.0,那么您可以创建单个持久订阅并提供一个队列名称,该主题上的所有已发布消息都将路由到该队列名称。然后,您所有的消费者都可以从该队列中获取消息。这样消息可以分布在多个消费者中。由于它是一个队列,因此没有两个消费者会收到相同的消息。

关于java - JMS pub sub 多个监听器,在分布式应用程序中对同一主题具有相同的订阅 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39355146/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com