使用ActiveMQ MasterSlave Discovery和共享配置之间的区别是什么?

时间:2014-08-08 21:31:05

标签: jms activemq high-availability

在activemq MasterSlave page上,他们介绍了使用 JDBC 共享文件 LevelDB存储进行设置的几种方法。强>

但是,在Network of Brokers页面上,他们谈论 MasterSlave Discovery ,而无需设置其中一个共享配置(JDBC,文件或LevelDB存储)。

<networkConnectors>
  <networkConnector uri="masterslave:(tcp://host1:61616,tcp://host2:61616,tcp://..)"/>
</networkConnectors>

使用 MasterSlave Discovery 共享配置之间有什么区别?我什么时候应该选择其中一个?

3 个答案:

答案 0 :(得分:1)

JDBC,共享文件或复制的LevelDB都是创建高可用持久性存储的选项,可以由主服务器及其从服务器访问。请注意,LevelDB存储不是共享的,而是复制的。

如果要通过网络连接(代理网络)将代理连接到由主服务器和从服务器组成的另一个逻辑代理,masterslave: uri前缀是failover前缀的简写少打字。

因此,MasterSlave Discovery和Shard配置完全不同。

您应该比较的是共享持久性存储(JDBC,共享文件)与replicated LevelDB store(无共享)。后者将允许您设置完全独立的代理,充当故障转移群集,而无需共享磁盘或数据库。

答案 1 :(得分:0)

one issue if you are using the masterslave discovery uri that is the cpu is high usage (>90%) the workaround way

答案 2 :(得分:-1)

ActiveMQ用户论坛上有一个有趣的讨论:http://activemq.2283324.n4.nabble.com/Avoiding-shared-state-between-master-and-slave-brokers-td4686401.html

我也对此感到困惑: 是否有任何方法可以在经纪人网络中实现无需共享的完全复制配置,其中一次只有一个主服务器且所有客户端都连接到这个实例(支持重新选择新主服务器时)现在的主人走了)?