Hochverfügbarkeit mit ThingWorx > ZooKeeper für ThingWorx HA installieren und konfigurieren
ZooKeeper für ThingWorx HA installieren und konfigurieren
Apache ZooKeeper ist eine Open-Source-Lösung für die Verwaltung der Synchronisation verteilter Anwendungen. Sie stellt Dienste zur Überwachung und Wahl von Leadern für ThingWorx Knoten bereit. Mindestens drei ZooKeeper-Knoten werden in einer Konfiguration für Hochverfügbarkeit (High Availability, HA) empfohlen. Die Anzahl der ZooKeeper-Instanzen muss eine ungerade Zahl sein, um ein Quorum beizubehalten.
Verwendung von ZooKeeper durch ThingWorx
Sobald ein ThingWorx Knoten zum Leader wird, erhält er eine Sitzung in ZooKeeper aufrecht und behält die Leader-Position. Wenn die Sitzung abläuft, weil der ThingWorx Knoten nicht antwortet, wählt der ZooKeeper-Dienst einen ThingWorx Standby-Knoten als nächsten Leader aus. Der ThingWorx Knoten wird benachrichtigt, dass er jetzt der Leader ist, und er übernimmt die Leader-Position, stellt eine vollständige Verbindung zur Datenbank her und beginnt mit der Verarbeitung des Datenverkehrs.
ZooKeeper-Knoten überwachen auch gegenseitig ihren Status. Wenn der aktive Knoten ausfällt, wird ein neuer ZooKeeper-Leader gewählt. Dies bietet Hochverfügbarkeit für den ZooKeeper-Dienst über einen internen Mechanismus für diese Knoten. Die ThingWorx Server werden mit den Adressen aller ZooKeeper-Knoten konfiguriert, sodass sie den aktuellen ZooKeeper-Leader suchen können.
ZooKeeper bereitstellen
Vor der Installation von ZooKeeper müssen Sie alle Installationsdokumente lesen und verstehen, einschließlich der Dokumentation für erforderliche Software wie Java. Es ist wichtig, die richtigen Einstellungen zu verstehen und anzuwenden, einschließlich Sicherheitsempfehlungen. Wenn Sie Java für ZooKeeper installieren, empfiehlt PTC, die vom Client initiierte Neuverhandlung zu deaktivieren (d.h. jdk.tls.rejectClientIntiatedRenegotiation=true).
Herunterladen
ZooKeeper kann unter http://zookeeper.apache.org/releases.html heruntergeladen werden.
Unterstützte Plattformen und Softwareanforderungen
Richtlinien für die Bereitstellung von ZooKeeper werden hier bereitgestellt, einschließlich unterstützter Plattformen und erforderlicher Software: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#ch_deployment
ZooKeeper-Cluster-Setup
Für ThingWorx HA sollte ein Cluster-Setup (mehrere Server) von ZooKeeper bereitgestellt werden. Apache referenziert einen ZooKeeper-Cluster als Ensemble. Hinweise zum Einrichten eines ZooKeeper-Ensembles finden Sie hier: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_zkMulitServerSetup
ThingWorx für die Verwendung von ZooKeeper konfigurieren
Wenn ZooKeeper ausgeführt wird, kann ThingWorx HA aktiviert werden. Der folgende Prozess konfiguriert ThingWorx, sodass die ZooKeeper-Server erkannt werden und mit ihnen gearbeitet werden kann. Einer der Schritte in diesem Prozess ist nur erforderlich, wenn ein ZooKeeper-Ensemble mehrere ThingWorx HA-Konfigurationen unterstützt.
1. Beenden Sie alle ThingWorx Dienste.
2. Bearbeiten Sie die Datei platform-settings.json, sodass sie Folgendes enthält:
a. Unter BasicSettings muss EnableHA wahr sein. Beispiel
“EnableHA”: false,
b. Unter HASettings muss CoordinatorHosts eine durch Kommas getrennte Liste aller ZooKeeper-Knoten und deren Ports aufweisen. Beispiel
“CoordinatorHosts”:
“127.0.0.1:2181,127.0.0.2:2182,127.0.0.3:2181”,
c. (Optionaler Schritt) Unter HASettings kann CoordinatorZNode verwendet werden, um diese ThingWorx HA-Konfiguration zu unterscheiden, wenn das ZooKeeper-Ensemble von mehreren ThingWorx HA-Konfigurationen gemeinsam genutzt wird.
"CoordinatorZNode": "MyThingWorxHA",
3. Übertragen Sie ggf. die geänderte Datei plattform-settings.json auf alle ThingWorx Server.
4. Starten Sie alle ThingWorx Server nacheinander, um kontrollierte Ergebnisse zu erzielen.
An diesem Punkt sollten alle ThingWorx Server in Betrieb sein und aufgerufen werden können. Es sollte jedoch nur ein ThingWorx Server Zugriff auf die Datenbank und deren Inhalt haben.