配置中央 ZooKeeper 群集
要将中央 Apache ZooKeeper 用于多个环境,每个 ThingWorx 高可用性群集的 ZooKeeper 配置必须具有命名空间。否则,所有组件将彼此可见,且可能在非预期情况下连接在一起。
|
新版 ZooKeeper 名称空间设置仅适用于 ThingWorx 9.3.0 及更高版本。
|
ThingWorx 设置
ThingWorx 平台设置必须使用 ThingWorx 和 Apache Ignite 的名称空间进行配置。
必须在
ClusterModeSettings 部分中添加或更改
ZkNamespace。有关详细信息,请参阅
ThingWorx HA 的平台设置。
"ClusteredModeSettings": {
"ZKNamespace" : "/mycluster",
}
更新 Ignite address-resolver 部分中的 basePath。名称不必与群集模式名称相匹配,但可以与之匹配。
"cache": {
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"ignite": {
"address-resolver" : {
"type": "zookeeper",
"basePath" : "/mycluster"
}
}
}
Ignite 设置
在用于启动 Ignite 的 config.xml 中设置 basePath。名称必须与 ThingWorx cache address-resolver 部分中使用的名称相匹配。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder">
<property name="zkConnectionString" value="zookeeper:2181"/>
<property name="basePath" value="/mycluster"/>
</bean>
</property>
</bean>
</property>
Connection Server 设置
对于 Connection Server,用于服务发现的 basePath 可在 Connection Server 配置的 discovery 部分进行设置。值前缀必须与 ThingWorx 群集设置部分中使用的值相匹配,并以 /services 结尾。这适用于 AlwaysOn、eMessage 和 Azure IoT。
discovery {
connectionString = "zookeeper:2181"
basePath = "/mycluster/services"
}
对于容器
• ThingWorx 设置
设置环境变量 ZOOKEEPER_BASE_PATH 和 IGNITE_ZK_BASE_PATH:
ZOOKEEPER_BASE_PATH=/mycluster
IGNITE_ZK_BASE_PATH=/mycluster
• Ignite 设置
设置环境变量 ZOOKEEPER_BASE_PATH:
ZOOKEEPER_BASE_PATH=/mycluster
• Connection Server 设置
按如下所示设置环境变量 SERVICE_DISCOVERY_BASE_PATH。您不需要指定 /services,因为它已内置在配置中。这适用于 AlwaysOn、eMessage 和 Azure IoT。
SERVICE_DISCOVERY_BASE_PATH=/mycluster