2014-01-16 54 views
1

我有两个关于ActiveMQ的问题。ActiveMQ中的多个代理和故障转移

  1. 在我的环境中,我在3个服务器中设置了3个ActiveMQ并共享一个数据库。是否有可能在3台服务器上运行3个ActiveMQ来共享相同的数据库?我试图设置它。但是,它看起来像3个经纪人不能共享相同的数据库。这是对的吗?
  2. 此外,我做了一些故障转移测试,它看起来像ActiveMQ不能保证消息顺序。例如我将3个ActiveMQ设置为ServerA,ServerB和ServerC。然后,我将MessageA,MessageB发布到ServerA中,并将MessageC发布到ServerB中。 ServerA ServerB和ServerC已被设置为故障转移服务器。当我关闭ServerA时,唯一的MessageC可以被使用。但是,消费的消息顺序应该是MessageA,MessageB和MessageC。即使通过ServerA关闭,我也需要保持这个消息顺序。是否可以配置ActiveMQ以保证故障转移的消息顺序?

谢谢!

回答

0
  1. 您可以将所有3设置为相同的数据库。它们将扮演主从故障转移的角色。只有一个实例将运行,另外两个将等待数据库锁定接管。

  2. 如果按照#1,这将保证顺序,但你将使用一台服务器在同一时间(和集中数据库作为存储)