ActiveMQ 中的多个代理和故障转移



我有两个关于ActiveMQ的问题。

  1. 在我的环境中,我在 3 台服务器中设置了 3 个 ActiveMQ 并共享一个数据库。是否可以在 3 台服务器中运行 3 个 ActiveMQ 以共享同一个数据库?我试图设置它。但是,看起来 3 个代理不能共享同一个数据库。正确吗?
  2. 另外,我做了一些故障转移测试,看起来ActiveMQ无法保证消息顺序。 例如,我将3个ActiveMQ设置为ServerA,ServerB和ServerC。然后,我将 MessageA,MessageB 发布到服务器 A 中,并将 MessageC 发布到服务器 B。ServerA ServerB 和 ServerC 已设置为故障转移服务器。当我关闭服务器 A 时,可以使用唯一的 MessageC。但是,使用的消息顺序应该是消息 A、消息 B 和消息 C。即使服务器 A 关闭,我也需要保持此消息顺序。是否可以配置 ActiveMQ 以保证故障转移的消息顺序?

谢谢!

  1. 您可以将所有 3 个设置为同一数据库。它们将充当主从故障转移。只有一个实例将运行,另外两个实例将等待来自数据库的锁定以进行接管。

  2. 如果您遵循#1,它将保证顺序,但您将一次使用一台服务器(以及集中式数据库作为存储)