我有 2 台服务器 server1 和 server2。server1 是主服务器,server2 是从属服务器。两者都在集群环境中运行。
如果具有相同组 ID 的 2 条消息同时到达节点 1 和节点 2,它们将不知道应该将消息发送给哪个消费者。因此,消息最终会被不同的消费者处理,有时首先到达的消息会被稍后处理,这是不可取的。
我想配置系统,以便两个节点彼此知道消息应该由哪个消费者处理。
我试过的解决方案: 用组处理程序 LOCAL 配置 server1,用 REMOTE 配置 server2。现在,每当消息到达时,本地组处理程序都会识别消费者在哪个节点上,并相应地选择消息。
此解决方案在 server1 运行正常之前有效。但是,如果 server1 出现故障,则不会再处理消息。
为了解决这个问题,我将备份服务器添加到 server1 到 server2 的消息传递子系统活动 mq 中,并且对 server2 进行了同样的操作。
/profile=garima/subsystem=messaging-activemq/server=backup:add
并将相同的集群连接、发现组、http-connector、广播组添加到此备份服务器,但是当我尝试此解决方案时,似乎无法修复故障转移条件,并且消息未在其他节点上处理。
请提出任何其他方法或如何配置具有 LOCAL 组处理程序的服务器停止的场景。