在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 和共享配置之间有什么区别?我什么时候应该选择其中一个?
答案 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
我也对此感到困惑: 是否有任何方法可以在经纪人网络中实现无需共享的完全复制配置,其中一次只有一个主服务器且所有客户端都连接到这个实例(支持重新选择新主服务器时)现在的主人走了)?