Configuration d'un cluster ZooKeeper central
Pour utiliser une solution Apache ZooKeeper centrale dans plusieurs environnements, les configurations ZooKeeper de chaque cluster ThingWorx haute disponibilité doivent contenir des espaces de noms. Sinon, tous les composants se voient les uns les autres et risquent de se rejoindre de façon indésirable.
Paramètres de ThingWorx
Les paramètres de plateforme ThingWorx doivent être configurés avec des espaces de noms pour ThingWorx et pour Apache Ignite.
Vous devez ajouter ou modifier
ZkNamespace dans la section
ClusterModeSettings. Pour plus d'informations, consultez la rubrique
Paramètres de la plateforme pour la haute disponibilité ThingWorx.
"ClusteredModeSettings": {
"ZKNamespace" : "/mycluster",
}
Mettez à jour le basePath dans la section address-resolver d'Ignite. Le nom peut correspondre à celui du mode cluster, mais ce n'est pas obligatoire.
"cache": {
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"ignite": {
"address-resolver" : {
"type": "zookeeper",
"basePath" : "/mycluster"
}
}
}
Paramètres d'Ignite
Définissez le basePath dans le fichier config.xml permettant de lancer Ignite. Ce nom doit correspondre à celui utilisé dans la section address-resolver du cache ThingWorx.
<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>
Paramètres du serveur de connexion
Pour les serveurs de connexion, le basePath utilisé pour la découverte de service peut être défini dans la section discovery de la configuration du serveur de connexion. Le préfixe de la valeur doit correspondre à la valeur utilisée dans la section des paramètres de cluster ThingWorx et se terminer par /services. Cela s'applique à AlwaysOn, eMessage et Azure IoT.
discovery {
connectionString = "zookeeper:2181"
basePath = "/mycluster/services"
}
Pour les conteneurs
• Paramètres de ThingWorx
Définissez les variables d'environnement ZOOKEEPER_BASE_PATH et IGNITE_ZK_BASE_PATH :
ZOOKEEPER_BASE_PATH=/mycluster
IGNITE_ZK_BASE_PATH=/mycluster
• Paramètres d'Ignite
Définissez la variable d'environnement ZOOKEEPER_BASE_PATH :
ZOOKEEPER_BASE_PATH=/mycluster
• Paramètres du serveur de connexion
Définissez la variable d'environnement SERVICE_DISCOVERY_BASE_PATH comme indiqué ci-dessous. Vous n'avez pas besoin de spécifier la variable /services, car elle est intégrée à la configuration. Cela s'applique à AlwaysOn, eMessage et Azure IoT.
SERVICE_DISCOVERY_BASE_PATH=/mycluster
Configuration de SSL/TLS pour ZooKeeper
Pour configurer SSL/TLS pour ZooKeeper, consultez la rubrique
Configuration de SSL/TLS pour ZooKeeper.