ThingWorx 高可用性 > ThingWorx HA 用 ZooKeeper のインストールおよび設定
ThingWorx HA 用 ZooKeeper のインストールおよび設定
Apache ZooKeeper は分散アプリケーションの同期化を管理するためのオープンソースソリューションです。ThingWorx ノードの監視およびリーダー選出サービスが提供されます。HA 構成では 3 つ以上の ZooKeeper ノードが推奨されます。クォーラムを維持するために ZooKeeper インスタンスの数は奇数である必要があります。
ThingWorx による ZooKeeper の使用方法
ThingWorx ノードがリーダシップを得ると、ZooKeeper とのセッションを維持し、リーダシップの地位を維持します。その ThingWorx ノードが応答に失敗したことが原因でセッションが期限切れになった場合、ZooKeeper サービスは次のリーダーとして ThingWorx スタンバイノードを選択します。この ThingWorx ノードは、リーダーになったことが通知されてリーダシップを得ると、データベースに完全に接続し、トラフィックの処理を開始します。
ZooKeeper ノードは相互のステータスも監視します。アクティブノードが失敗した場合、新規 ZooKeeper ノードが選出されます。これにより、これらのノードの内部メカニズムを介して ZooKeeper サービスの高可用性が実現します。ThingWorx サーバーは、すべての ZooKeeper ノードのアドレスが設定されているので、現在の ZooKeeper リーダーを見つけることができます。
ZooKeeper の展開
Zookeeper をインストールする前に、必要条件となる Java などのソフトウェアのドキュメンテーションを含め、インストールに関するすべてのドキュメントを読んで理解します。セキュリティに関する推奨事項を含め、適切な設定について理解し、適用することが重要です。ZooKeeper 用の Java をインストールする際には、クライアントによって開始された再ネゴシエーション (つまり jdk.tls.rejectClientIntiatedRenegotiation=true) を無効にすることをお勧めします。
ダウンロード
ZooKeeper は http://zookeeper.apache.org/releases.html からダウンロードできます。
サポートされるプラットフォームおよびソフトウェアの要件
サポートされるプラットフォームおよび必要なソフトウェアをはじめとする、ZooKeeper を展開する際のガイドラインが http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#ch_deployment に示されています。
ZooKeeper のクラスタ化設定
ThingWorx HA では、クラスタ化された (マルチサーバー) 設定の ZooKeeper を展開する必要があります。Apache は ZooKeeper クラスタをアンサンブルと呼んでいます。ZooKeeper アンサンブルを設定する際のガイダンスが http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_zkMulitServerSetup に示されています。
ZooKeeper を使用するための ThingWorx の設定
ZooKeeper が動作している状態で、ThingWorx HA をアクティブ化できます。以下のプロセスでは、ThingWorx が ZooKeeper サーバーを認識して ZooKeeper サーバーと連携するように設定しています。このプロセスのステップの 1 つは、1 つの ZooKeeper アンサンブルが複数の ThingWorx HA 構成をサポートしている場合にのみ必要です。
1. すべての ThingWorx サービスを停止します。
2. platform-settings.json を以下のように編集します。
a. BasicSettings の下の、EnableHA を true にします。例を以下に示します。
“EnableHA”: false,
b. HASettings の下の CoordinatorHosts に、すべての ZooKeeper ノードとそのポートのコンマ区切りリストを指定します。例を以下に示します。
“CoordinatorHosts”:
“127.0.0.1:2181,127.0.0.2:2182,127.0.0.3:2181”,
c. (オプションのステップ) HASettings の下の CoordinatorZNode を使用して、ZooKeeper アンサンブルが複数の ThingWorx HA 構成で共有されている場合にこの ThingWorx HA 構成を区別できます。
"CoordinatorZNode": "MyThingWorxHA",
3. 必要に応じて、修正した platform-settings.json をすべての ThingWorx サーバーに適用します。
4. 希望どおりの結果になるように、すべての ThingWorx サーバーを 1 台ずつ起動します。
この時点で、すべての ThingWorx サーバーが動作していてアクセス可能です。ただし、データベースとそのコンテンツにアクセスできる ThingWorx サーバーは 1 台だけです。