我正在尝试设置代理群集,它应该具有像rabbitMQ群集一样的功能,但是通过WAN(我的机器位于不同的位置),所以rabbitMQ群集不起作用。
我正在寻找替代方案,rabbitMQ联盟只是备份下游的消息,无法确保它们在任何时候都具有完全相同的消息(下游仍保留已在上游消耗的旧消息)
ActiveMQ Master / Slave怎么样,我发现: http://activemq.apache.org/how-do-distributed-queues-work.html
“队列和主题都在集群中的每个代理之间进行复制(通常是主服务器,也可能是单个服务器)。因此,集群中的每个代理都可以随时获得完全相同的消息,因此如果主服务器出现故障,客户端故障转移到从属服务器并且您不会丢失消息。“
我担心的是,如果它可以自动更新以确保Master / Slave始终具有相同的消息,这意味着Master中消耗的消息也将在Slaves中消失。
谢谢:)
答案 0 :(得分:0)
ActiveMQ具有各种群集功能。
首先是高可用性 - "主/从"。这个想法是几个物理服务器充当单个逻辑ActiveMQ代理。如果一个发生故障,另一个发生故障而不会丢失数据。您可以通过共享消息存储(共享文件系统或共享JDBC)来实现,或者您可以设置replicated cluster,它将对主服务器的读/写复制到所有从服务器(您需要三个+服务器)。 ActiveMQ正在使用LevelDB和Apache Zookeeper来实现这一目标。
ActiveMQ中可用的其他群集格式是能够在多个逻辑代理上分配负载和单独的安全性。然后经纪人在经纪人网络中连接。默认情况下,消息会传递给具有该消息的可用消费者的代理。但是,ActiveMQ中有一个丰富的功能工具箱,用于调整代理网络以执行操作,因为它总是将消息的副本发送给特定代理等。但是需要更多高级功能(静态网络连接器和队列镜像) ,也许更多)。
也许有更好的方法可以解决您的要求,问题中没有明确规定?