Конфигурирование центрального кластера ZooKeeper
Чтобы использовать центральный кластер Apache ZooKeeper для нескольких сред, необходимо, чтобы конфигурации ZooKeeper для каждого кластера ThingWorx высокой доступности были заданы как пространства имен. Иначе все компоненты будут видеть друг друга и могут соединяться, когда это не требуется.
|
Новые настройки пространства имен ZooKeeper применимы только к версиям ThingWorx 9.3.0 и выше.
|
Настройки ThingWorx
Настройки платформы ThingWorx должны быть сконфигурированы с пространствами имен как для ThingWorx, так и для Apache Ignite.
Необходимо добавить или изменить
ZkNamespace в разделе
ClusterModeSettings. Дополнительные сведения см. в разделе
Настройки платформы для ThingWorx HA.
"ClusteredModeSettings": {
"ZKNamespace" : "/mycluster",
}
Обновите basePath в разделе Ignite address-resolver. Имя может (не обязательно) соответствовать имени в кластерном режиме.
"cache": {
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"ignite": {
"address-resolver" : {
"type": "zookeeper",
"basePath" : "/mycluster"
}
}
}
Настройки Ignite
Задайте basePath в файле config.xml, который используется для запуска Ignite. Имя должно совпадать с именем, используемым в разделе кэша ThingWorx 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>
Настройки сервера соединений
Для серверов соединений параметр basePath, используемый для обнаружения сервисов, можно задать в разделе 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
• Настройки сервера соединений
Задайте переменную среды SERVICE_DISCOVERY_BASE_PATH следующим образом. Нет необходимости указывать параметр /services, потому что он встроен в конфигурацию. Это применимо к AlwaysOn, eMessage и Azure IoT.
SERVICE_DISCOVERY_BASE_PATH=/mycluster