ActiveMQ使用zookeeper复制了levelDB

时间:2014-11-02 10:17:38

标签: activemq apache-zookeeper leveldb

我想了解zookeeper在ActiveMQ代理的复制leveldb中的角色。

  1. 关于zookeeper选举:zookeeper如何知道连接到zookeeper的所有客户端,哪些客户端是ActiveMQ经纪人争取成为主人。是否有任何特定的密钥或配置由连接到zookeeper的所有经纪人传递,表示我们(假设3)ActiveMQ经纪人属于同一环境并且争取成为主人。

  2. 奴隶经纪人从主经纪人那里复制数据的间隔是多少?任何可能丢失数据的极端情况?

  3. ActiveMQ是否使用复制的leveldb保证消息排序?我正在讨论当生产者按顺序向经纪人发送消息时重新选举主人的情况吗?

  4. 谢谢,
    Anuj

1 个答案:

答案 0 :(得分:5)

  1. 通过Zookeeper配置中的zkPath和代理名称。
  2. 在事务完成之前,每条消息都会同步到仲裁(nodes / 2 + 1)代理。因此没有同步间隔,它实时同步。除非您有一定数量的在线经纪人,否则群集将无法运行,因此不会有数据丢失。
  3. 消息以同步方式同步到大多数节点。在重新选举时,将选出具有最新更新的节点。有序消息应该没问题。但是,在消息队列中严格依赖有序消息通常是有问题的。根据经验,消息顺序只能在“快乐的日子”下完成。死信,多个消费者等也可能搞乱消息顺序。