我们使用 WebLogic 服务器,使用来自 Topic 的 JMS 消息。我们有几个节点,在主动/主动订阅模式下工作,除了 dB (Oracle) 之外没有共享状态。问题是,我们有一个要求,即只有一个订阅者(第一个接收到消息的)需要在从 Topic 接收到消息时执行实际的业务逻辑。
订阅者之间同步的最佳方法是什么?是否有某种方法可以在 WebLogic 本身上处理此问题,例如从主题收集消息,冒充单个订阅者并将其放入队列中 - 这样 WebLogic 的订阅者将收听队列而不是原始主题?
JMS 中还有共享订阅的概念,其中一个主题的消息在多个消费者之间共享。要共享一个主题的订阅,所有消费者必须使用相同的客户端 ID 和订阅 ID(或密钥)。更多细节在这里。