KahaDB 复制 (实验性)
功能 > 集群 > 主从 > KahaDB 复制 (实验性)
注意
此功能正在审查中,目前不支持。
概述
新的 KahaDB 存储支持非常快速且灵活的复制系统。它具有以下特点:
- 日志级别复制(这意味着主节点复制记录的开销更低)。
- 支持多个从节点。
- 支持在运行时动态添加从节点。
- 使用多个并发数据传输会话进行初始从节点同步。
- 大型从节点同步可以恢复,因此如果从节点重启,同步进度不会丢失。
- 可配置的最小副本数允许您暂停处理,直到数据被保证复制足够多次。
主节点选举
KahaDB 支持可插拔的主节点选举算法,但目前唯一的实现是基于 ZooKeeper 的算法。
ZooKeeper 用于实现主节点选举算法。ZooKeeper 是一个非常快速、复制的内存数据库,它具有易于实现集群控制算法的功能。它是一个 Apache 项目,您可以 免费下载。在设置 KahaDB 主从配置之前,您必须安装并至少运行一个 ZooKeeper 服务器。
配置代理
ActiveMQ Classic 二进制发行版在 $ACTIVEMQ_HOME/conf/ha.xml 中包含一个 KahaDB HA 代理配置。
它被设置为在 localhost 的端口 2181 上查找 ZooKeeper 3.0.0 服务器。如果您的 ZooKeeper 服务器不是在该位置运行,请编辑该配置。
通过运行以下命令启动配置:
prompt> $ACTIVEMQ_HOME/bin/activemq xbean:ha.xml
配置文件的实际内容如下:{snippet:lang=xml|id=example|url=activemq/trunk/assembly/src/release/conf/ha.xml}
了解 kahadbReplication XML 元素
brokerURI 属性
请注意,brokerURI 属性指向另一个代理配置文件。ha-broker.xml 包含代理在节点接管主节点角色时使用的实际代理配置。ha-broker.xml 配置文件是一个标准的代理配置,除了以下方面:
- 它必须在代理元素上设置 start=”false” 属性。
- 它必须不配置 persistenceAdapter。
上述规则允许复制系统在主节点启动时将复制的 KahaDB 存储注入主节点。
minimumReplicas 属性
minimumReplicas 指定在同步更新操作被认为成功之前需要多少份数据库副本。将其设置为 0 允许代理即使没有附加从节点也能继续运行。如果该值设置为 1 或更大,并且没有附加从节点,则代理的持久消息处理将暂停,直到附加最小数量的从节点并将数据同步。
uri 属性
uri 属性应始终配置为基于 kdbr:// 的 URI。KDBR 代表 “KahaDB 复制”,这是主节点和从节点之间使用的复制协议。主节点绑定指定的端口,从节点随后连接到该端口并建立复制会话。uri 中的主机名必须更新为实际机器的主机名,因为这也被用于识别集群中的节点。
directory 属性
这是 KahaDB 存储其持久文件的数据目录。