配置中央 ZooKeeper 叢集
欲針對多個環境使用中央 Apache ZooKeeper,每個 ThingWorx 高可用性叢集的 ZooKeeper 組態必須具有命名空間。否則,所有元件彼此可見且可能在不需要的情況下連接在一起。
ThingWorx 設定
您必須針對 ThingWorx 與 Apache Ignite 使用命名空間配置 ThingWorx 平台設定。
您必須在
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