Hochverfügbarkeit mit ThingWorx > Ignite für ThingWorx HA installieren und konfigurieren
Ignite für ThingWorx HA installieren und konfigurieren
Apache Ignite ist eine horizontal skalierbare und fehlertolerante verteilte In-Memory Computing-Plattform für die Entwicklung von Echtzeitanwendungen, die Terabyte von Daten mit In-Memory-Geschwindigkeit verarbeiten können. In einer ThingWorx HA-Clusterumgebung wird Ignite als verteilter Arbeitsspeicher zum Speichern des geteilten Status, wie aktuelle Eigenschaftswerte und Bindungsinformationen, zwischen ThingWorx Foundation Knoten verwendet.
Voraussetzungen
Folgendes muss vorhanden sein:
ZooKeeper installiert und funktionsfähig
Weitere Informationen finden Sie unter ZooKeeper für ThingWorx HA installieren und konfigurieren.
Netzwerkkonfigurationen, die Zugriff auf ZooKeeper-Knoten ermöglichen
Installation (Ignite 2.14 und höher)
* 
Wenn Sie ThingWorx 9.2.x bis 9.3.x verwenden, finden Sie weitere Informationen unter ThingWorx 9.2.x bis 9.3.x installieren (unter Ignite 2.11 und älter).
1. Laden Sie Ignite von der Unternehmenswebsite herunter: https://ignite.apache.org/download.cgi#binaries. Informationen zur Versionskompatibilität finden Sie im PTC Release Advisor.
2. Laden Sie die ThingWorx Bibliotheken cache-provider-ignite-[version].zip und cache-provider-api-[version].zip herunter. Extrahieren Sie das ZIP-Archiv, und legen Sie die JAR-Dateien im Ignite-Ordner $IGNITE_HOME/libs ab.
3. Verwenden Sie den ZooKeeper-Mechanismus zur Diensterkennung, damit der Cluster eine Verbindung mit der Plattform herstellen kann.
a. Befolgen Sie die Anweisungen hier: https://apacheignite.readme.io/docs/zookeeper-discovery.
b. Verschieben Sie die Verzeichnisse ignite-zookeeper, ignite-log4j2 und ignite-slf4j aus dem Ordner $IGNITE_HOME/libs/optional in den Ordner $IGNITE_HOME/libs.
c. Gehen Sie unter Linux wie folgt vor, um die Dateien auf die neueste Version zu aktualisieren:
# remove the existing zookeeper jar file in the ignite-zookeeper folder
rm -rf "${IGNITE_HOME}"/libs/ignite-zookeeper/zookeeper-*
# remove unneeded library
rm -rf "${IGNITE_HOME}"/libs/ignite-indexing/
# download the latest zookeeper plus other required libraries and place in ignite-zookeeper folder
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.8.1/zookeeper-3.8.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/3.8.1/zookeeper-jute-3.8.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-client/5.2.1/curator-client-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-framework/5.2.1/curator-framework-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-recipes/5.2.1/curator-recipes-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-x-discovery/5.2.1/curator-x-discovery-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.12.7/jackson-databind-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.12.7/jackson-core-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.12.7/jackson-annotations-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/ignite/ignite-zookeeper-ip-finder-ext/1.0.0/ignite-zookeeper-ip-finder-ext-1.0.0.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
d. Gehen Sie unter Windows wie folgt vor, um die Dateien auf die neueste Version zu aktualisieren: Entfernen Sie JAR-Dateien aus dem Verzeichnis libs/ignite-zookeeper/zookeepr und das Verzeichnis libs/ignite-indexing.
i. Laden Sie die folgenden JAR-Dateien herunter, und legen Sie sie im Verzeichnis libs/ignite-zookeeper/ ab.
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.8.1/zookeeper-3.8.1.jar
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/3.8.1/zookeeper-jute-3.8.1.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-client/5.2.1/curator-client-5.2.1.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-framework/5.2.1/curator-framework-5.2.1.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-recipes/5.2.1/curator-recipes-5.2.1.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-x-discovery/5.2.1/curator-x-discovery-5.2.1.jar
https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.12.7/jackson-databind-2.12.7.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.12.7/jackson-core-2.12.7.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.12.7/jackson-annotations-2.12.7.jar
https://repo1.maven.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar
https://repo1.maven.org/maven2/org/apache/ignite/ignite-zookeeper-ip-finder-ext/1.0.0/ignite-zookeeper-ip-finder-ext-1.0.0.jar
4. Aktualisieren Sie die Datei default-config.xml, um die ZooKeeper-Diensterkennung zu aktivieren. Sie müssen die ZooKeeper-Serveradresse in der Verbindungseigenschaft zkConnectionString platzieren.
<?xml version="1.0" encoding="UTF-8"?>
<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_IPADDRESS:2181"/>
</bean>
</property>
</bean>
</property>
<property name="peerClassLoadingEnabled" value="true"/>
</bean>
</beans>
ThingWorx 9.2.x bis 9.3.x installieren (unter Ignite 2.11 und älter)
1. Laden Sie Ignite von der Unternehmenswebsite herunter: https://ignite.apache.org/download.cgi#binaries. Informationen zur Versionskompatibilität finden Sie im PTC Release Advisor.
2. Laden Sie die ThingWorx Bibliotheken cache-provider-ignite-[version].zip und cache-provider-api-[version].zip herunter. Extrahieren Sie das ZIP-Archiv, und legen Sie die JAR-Dateien im Ignite-Ordner $IGNITE_HOME/libs ab.
3. Verwenden Sie den ZooKeeper-Mechanismus zur Diensterkennung, damit der Cluster eine Verbindung mit der Plattform herstellen kann.
a. Befolgen Sie die Anweisungen hier: https://apacheignite.readme.io/docs/zookeeper-discovery.
b. Verschieben Sie die Verzeichnisse ignite-zookeeper, ignite-log4j2 und ignite-slf4j aus dem Ordner $IGNITE_HOME/libs/optional in den Ordner $IGNITE_HOME/libs.
c. Gehen Sie unter Linux wie folgt vor, um die Dateien auf die neueste Version zu aktualisieren:
# remove the existing zookeeper jar file in the ignite-zookeeper folder
rm -rf "${IGNITE_HOME}"/libs/ignite-zookeeper/zookeeper-*
# remove libs/ignite-zookeeper/curator-*
rm -rf "${IGNITE_HOME}"/libs/ignite-zookeeper/curator*
# remove libs/ignite-zookeeper/guava-*
rm -rf "${IGNITE_HOME}"/libs/ignite-zookeeper/guava*
# download the latest zookeeper plus other required libraries and place in ignite-zookeeper folder
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.8.1/zookeeper-3.8.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/3.8.1/zookeeper-jute-3.8.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-client/5.2.1/curator-client-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-framework/5.2.1/curator-framework-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-recipes/5.2.1/curator-recipes-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/curator/curator-x-discovery/5.2.1/curator-x-discovery-5.2.1.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.12.7/jackson-databind-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.12.7/jackson-core-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.12.7/jackson-annotations-2.12.7.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/ignite/ignite-zookeeper-ip-finder-ext/1.0.0/ignite-zookeeper-ip-finder-ext-1.0.0.jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
d. Gehen Sie unter Windows wie folgt vor, um die Dateien auf die neueste Version zu aktualisieren: Entfernen Sie JAR-Dateien aus dem Verzeichnis libs/ignite-zookeeper/zookeepr und das Verzeichnis libs/ignite-indexing.
i. Laden Sie die folgenden JAR-Dateien herunter, und legen Sie sie im Verzeichnis libs/ignite-zookeeper/ ab.
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.8.1/zookeeper-3.8.1.jar
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/3.8.1/zookeeper-jute-3.8.1.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-client/5.1.0/curator-client-5.1.0.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-framework/5.1.0/curator-framework-5.1.0.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-recipes/5.1.0/curator-recipes-5.1.0.jar
https://repo1.maven.org/maven2/org/apache/curator/curator-x-discovery/5.1.0/curator-x-discovery-5.1.0.jar
https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar
https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.12.7/jackson-databind-2.12.7.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.12.7/jackson-core-2.12.7.jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.12.7/jackson-annotations-2.12.7.jar
https://repo1.maven.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar
4. Aktualisieren Sie die Datei default-config.xml, um die ZooKeeper-Diensterkennung zu aktivieren. Sie müssen die ZooKeeper-Serveradresse in der Verbindungseigenschaft zkConnectionString platzieren.
<?xml version="1.0" encoding="UTF-8"?>
<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_IPADDRESS:2181"/>
</bean>
</property>
</bean>
</property>
<property name="peerClassLoadingEnabled" value="true"/>
</bean>
</beans>
Netzwerke
Die folgenden Ports müssen zwischen den Ignite-Servern und den ThingWorx Servern offen sein:
Port
Verwendung
47500 bis 47600
Erkennungsport
47100 bis 47200
Kommunikationsport
8080
Standardport für REST-API
49128
Standardport für JMX-Verbindung
War dies hilfreich?