検索

384.5. ZooKeeper 対応のルートポリシー

download PDF

ZooKeeper では、すぐに使用できる非常にシンプルで効果的なリーダー選出が可能です。このコンポーネントは、RoutePolicy でこの選出機能を利用して、ルートを有効にするタイミングと方法を制御します。このポリシーは通常、フェイルオーバーシナリオで使用され、Camel ベースのサーバーのクラスター全体でルートの同一のインスタンスを制御します。非常に一般的なシナリオは、クラスター全体に分散されたルートの複数のインスタンスが存在する単純なマスター - スレーブセットアップですが、それらのうちの 1 つ (マスターのもの) のみが一度に実行される必要があります。マスターに障害が発生した場合、使用可能なスレーブから新しいマスターを選択し、この新しいマスターのルートを開始する必要があります。

ポリシーは、選出に関与する RoutePolicy のすべてのインスタンスで共通の znode パスを使用します。各ポリシーはその ID をこのノードに書き込み、Zookeeper は書き込みを受け取った順に並べます。次に、ポリシーはノードのリストを読み取り、その ID の位置を確認します。この位置は、ルートを開始するかどうかを決定するために使用されます。ポリシーは起動時に、クラスター全体で開始する必要があるルートインスタンスの数で設定されます。リスト内の位置がこの値よりも小さい場合、そのルートが開始されます。マスター/スレーブシナリオの場合、ルートは 1 つのルートインスタンスで設定され、リストの最初のエントリーのみがそのルートを開始します。すべてのポリシーはリストの更新を監視し、リストが変更された場合、ルートを開始する必要があるかどうかを再計算します。Zookeeper のリーダー選出機能の詳細については、このページ を参照してください。

次の例では、選択にノード /someapplication/somepolicy を使用し、ノードリストの上位 '1' エントリーのみを開始するように設定します。つまり、マスターを選択します。

ZooKeeperRoutePolicy policy = new ZooKeeperRoutePolicy("zookeeper:localhost:39913/someapp/somepolicy", 1);
from("direct:policy-controlled")
    .routePolicy(policy)
    .to("mock:controlled");

現在、コンポーネントには異なる SLA を持つ 3 つのポリシーが定義されています。

  • ZooKeeperRoutePolicy
  • CuratorLeaderRoutePolicy (2.19 以降)
  • MultiMasterCuratorLeaderRoutePolicy (2.19 以降)

ZooKeeperRoutePolicy は複数のアクティブなノードをサポートしますが、アクティベーションは Camel コンポーネントとそれに対応する Consumer がすでに開始された後にのみ開始されます。これにより、ルートの定義によっては、ノードがアクティブ化されるべきではないというポリシーが確立される前に、コンポーネントがイベントの消費と Exchange の生成をすでに開始できるというリスクが生じます。

CuratorLeaderRoutePolicy は単一のアクティブノードのみをサポートしますが、別の CamelContext ライフサイクルメソッドにバインドされています。ルートまたはコンシューマーが開始される前に、このポリシーが開始されるため、ポリシーが決定を下す前に処理されることはありません。

MultiMasterCuratorLeaderRoutePolicy は複数のアクティブノードをサポートし、CuratorLeaderRoutePolicy と同じライフサイクルメソッドにバインドされます。ルートまたはコンシューマーが開始される前に、このポリシーが開始されるため、ポリシーが決定を下す前に処理されることはありません。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.