ThingWorx 高可用性 > 為 ThingWorx HA 安裝及配置 Ignite
為 ThingWorx HA 安裝及配置 Ignite
Apache Ignite 是一個可水平擴充及容錯分散的記憶體內部計算平台,可用來建構即時應用程式,以使用記憶體內部速度處理數 TB 的資料。在 ThingWorx HA 叢集環境中,會將 Ignite 作為分散式記憶體用來在 ThingWorx Foundation 節點之間儲存共用狀態 (例如目前內容值與繫結資訊)。
先決條件
您必須:
已安裝並執行 ZooKeeper
如需詳細資訊,請參閱 為 ThingWorx HA 安裝及配置 ZooKeeper
擁有允許存取 ZooKeeper 節點的網路組態
安裝 (Ignite 2.14 及更高版本)
* 
如果要使用 ThingWorx 9.2x 至 9.3x,請參閱安裝 ThingWorx 9.2x 至 9.3x (Ignite 2.11 和較低版本)
1. 從網站中下載 Ignite:https://ignite.apache.org/download.cgi#binaries。如需版本相容性資訊,請參閱 PTC Release Advisor
2. 下載 ThingWorx 程式庫 cache-provider-ignite-[version].zipcache-provider-api-[version].zip,解壓縮 zip,並將 jar 檔案放在 Ignite 資料夾 $IGNITE_HOME/libs 下。
3. 使用 ZooKeeper 服務探索機制,讓叢集與平台連線。
b. ignite-zookeeperignite-log4j2ignite-slf4j 目錄從 $IGNITE_HOME/libs/optional 資料夾移至 $IGNITE_HOME/libs 資料夾。
c. 如果使用的是 Linux 系統,請執行下列操作將檔案更新為最新版本:
# 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. 如果使用的是 Windows 系統,請執行下列操作將檔案更新為最新版本:移除 libs/ignite-zookeeper/zookeepr *jar 檔案和 libs/ignite-indexing/ directory。
i. 下載下列 jar 檔案,並將其置於 libs/ignite-zookeeper/ 目錄中。
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. 更新 default-config.xml 檔案以啟用 ZooKeeper 服務探索。您必須將 ZooKeeper 伺服器位址置於 zkConnectionString 連線內容中。
<?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.2x 至 9.3x (Ignite 2.11 和較低版本)
1. 從網站中下載 Ignite:https://ignite.apache.org/download.cgi#binaries。如需版本相容性資訊,請參閱 PTC Release Advisor
2. 下載 ThingWorx 程式庫 cache-provider-ignite-[version].zipcache-provider-api-[version].zip,解壓縮 zip,並將 jar 檔案放在 Ignite 資料夾 $IGNITE_HOME/libs 下。
3. 使用 ZooKeeper 服務探索機制,讓叢集與平台連線。
b. ignite-zookeeperignite-log4j2ignite-slf4j 目錄從 $IGNITE_HOME/libs/optional 資料夾移至 $IGNITE_HOME/libs 資料夾。
c. 如果使用的是 Linux 系統,請執行下列操作將檔案更新為最新版本:
# 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. 如果使用的是 Windows 系統,請執行下列操作將檔案更新為最新版本:移除 libs/ignite-zookeeper/zookeepr *jar 檔案和 libs/ignite-indexing/ directory。
i. 下載下列 jar 檔案,並將其置於 libs/ignite-zookeeper/ 目錄中。
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. 更新 default-config.xml 檔案以啟用 ZooKeeper 服務探索。必須將 ZooKeeper 伺服器位址置於 zkConnectionString 連線內容中。
<?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>
網路
您必須在 Ignite 伺服器與 ThingWorx 伺服器之間開啟下列埠:
使用方式
47500-47600
探索埠
47100-47200
通訊埠
8080
REST API 的預設埠
49128
JMX 連線的預設埠
這是否有幫助?