ThingWorx 高可用性 > 安装和配置适用于 ThingWorx HA 的 ZooKeeper
安装和配置适用于 ThingWorx HA 的 ZooKeeper
Apache ZooKeeper 是用于管理分布式应用程序同步的开放源解决方案。它会为 ThingWorx 节点提供监控和主导节点服务。建议在一个 HA 配置中至少使用三个 ZooKeeper 节点。要保持符合规定的数量,ZooKeeper 实例数必须为奇数。
ThingWorx 使用 ZooKeeper 的方式
ThingWorx 节点获得主导权后,它将保持与 ZooKeeper 的会话并维护主导权。如果会话因 ThingWorx 节点无法响应而过期,则 ZooKeeper 服务会选择一个 ThingWorx 备用节点作为下一个主导节点。此时会通知 ThingWorx 节点,其现为主导节点且会占据主导权、完全连接到数据库并开始处理通信。
ZooKeeper 节点还会监控彼此的状态。如果活动节点失败,则会选择新的 ZooKeeper 主导节点。如此,通过这些节点的内部机制为 ZooKeeper 服务提供高可用性。ThingWorx 服务器使用所有 ZooKeeper 节点的地址进行配置,使其能够找查找当前 ZooKeeper 主导节点。
部署 ZooKeeper
在安装 Zookeeper 之前,请阅读并了解所有安装文档,包括任何诸如 Java 等所需必备软件的文档。重点是了解和应用正确的设置,其中包括安全建议。在安装 Java for Zookeeper 时,PTC 建议禁用客户端发起的重新协商 (即 jdk.tls.rejectClientIntiatedRenegotiation=true)。
下载
ZooKeeper 可从以下位置下载 http://zookeeper.apache.org/releases.html
支持的平台和软件要求
此处提供部署 ZooKeeper 的指导原则,其中包括支持的平台和所需软件: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#ch_deployment
ZooKeeper 群集设置
对于 ThingWorx HA,应部署 ZooKeeper 的群集 (多服务器) 设置。Apache 将 ZooKeeper 群集视为集合。此处提供建立 ZooKeeper 集合的指南: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_zkMulitServerSetup
配置 ThingWorx 以使用 ZooKeeper
ZooKeeper 启动并运行后,可以激活 ThingWorx HA。以下过程用于配置 ThingWorx 以识别和使用 ZooKeeper 服务器。仅当一个 ZooKeeper 集合支持多个 ThingWorx HA 配置时,才需要执行此过程中的步骤之一。
1. 停止所有 ThingWorx 服务。
2. 编辑 platform-settings.json 以包含以下内容:
a. BasicSettings 下,EnableHA 应为 true。例如
“EnableHA”: false,
b. HASettings 下,CoordinatorHosts 应具有以逗号分隔的所有 ZooKeeper 节点及其端口的列表。例如
“CoordinatorHosts”:
“127.0.0.1:2181,127.0.0.2:2182,127.0.0.3:2181”,
c. (可选步骤) 在 HASettings 下,CoordinatorZNode 可在 ZooKeeper 集合由多个 ThingWorx HA 配置共享时,区分此 ThingWorx HA 配置。
"CoordinatorZNode": "MyThingWorxHA",
3. 如有必要,请将已修改的 platform-settings.json 传播到所有 ThingWorx 服务器。
4. 启动所有 ThingWorx 服务器,每次启动一个,以便控制结果。
此时,所有 ThingWorx 服务器都应处于运行状态且可访问。但是,应只有一个 ThingWorx 服务器具有访问数据库及其内容的权限。