Configuración de un clúster central de ZooKeeper
Para utilizar una instancia de Apache ZooKeeper central para múltiples entornos, las configuraciones de ZooKeeper para cada clúster de alta disponibilidad de ThingWorx deben contener espacios de nombres. De lo contrario, todos los componentes se verán entre sí y probablemente se unirán cuando no se quiera.
Configuración de ThingWorx
Opciones de configuración de ThingWorx Platform deben configurarse con los espacios de nombres tanto para ThingWorx como para Apache Ignite.
Se debe añadir o cambiar
ZkNamespace en la sección
ClusterModeSettings. Para obtener más información, consulte
Configuración de plataforma para la alta disponibilidad de ThingWorx.
"ClusteredModeSettings": {
"ZKNamespace" : "/mycluster",
}
Actualice el objeto basePath de la sección address-resolver de Ignite. El nombre no tiene por qué coincidir con el nombre del modo de clúster, pero sí puede hacerlo.
"cache": {
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"ignite": {
"address-resolver" : {
"type": "zookeeper",
"basePath" : "/mycluster"
}
}
}
Configuración de Ignite
Defina el objeto basePath en el fichero config.xml que se utiliza para iniciar Ignite. El nombre debe coincidir con el nombre utilizado en la sección address-resolver de la caché de 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>
Configuración del servidor de conexión
Para los servidores de conexión, el objeto basePath que se utiliza para el descubrimiento de servicios puede definirse en la sección discovery de la configuración del servicio de conexión. El prefijo del valor debe coincidir con el valor utilizado en la sección de configuración del clúster de ThingWorx y terminar con /services. Esto se aplica a AlwaysOn, eMessage y Azure IoT.
discovery {
connectionString = "zookeeper:2181"
basePath = "/mycluster/services"
}
Para contenedores
• Configuración de ThingWorx
Defina las variables de entorno ZOOKEEPER_BASE_PATH e IGNITE_ZK_BASE_PATH:
ZOOKEEPER_BASE_PATH=/mycluster
IGNITE_ZK_BASE_PATH=/mycluster
• Configuración de Ignite
Defina la variable de entorno ZOOKEEPER_BASE_PATH:
ZOOKEEPER_BASE_PATH=/mycluster
• Configuración del servidor de conexión
Defina la variable de entorno SERVICE_DISCOVERY_BASE_PATH como se indica a continuación. No es necesario especificar /services porque está integrado en la configuración. Esto se aplica a AlwaysOn, eMessage y Azure IoT.
SERVICE_DISCOVERY_BASE_PATH=/mycluster
Configuración de SSL/TLS para Zookeeper
Para configurar SSL/TLS para ZooKeeper, consulte
Configuración de SSL/TLS para ZooKeeper.