次の方法で共有


マルチクラスターのサポート

マルチクラスターのサポートは、v2 で削除されました。 以下のドキュメントは、Orleans v1 に関するものです。 Orleans v.1.3.0 では、1 つのサービスとして機能する、緩く接続された "マルチクラスター" への複数の Orleans クラスターのフェデレーションのサポートが追加されました。 マルチクラスターを使うと、サービスとしての "geo ディストリビューション" が容易になり、世界中の複数のデータ センターで Orleans アプリケーションを簡単に実行できるようになります。 また、1 つのデータセンター内でマルチクラスターを実行して、障害とパフォーマンスの分離を向上させることもできます。

すべてのメカニズムは、次のことに特に注意して設計されています。

  1. クラスター間の通信を最小限に抑えます。
  2. 他のクラスターが失敗したり到達不能になった場合でも、各クラスターは自律的に実行します。

構成と操作

以下では、マルチクラスターを構成して操作する方法について説明します。

通信。 クラスターは、クラスター内で使われるのと同じサイロ間接続を介して通信します。 状態と構成の情報を交換するため、クラスターはゴシップ メカニズムとゴシップ チャネルの実装を使います。

サイロの構成。 サイロは、自分がどのクラスターに属しているのかを認識するように構成する必要があります (各クラスターは一意の文字列で識別されます)。 また、各サイロは、起動時に 1 つ以上のゴシップ チャネルに接続できる接続文字列で構成する必要があります。

マルチクラスター構成の挿入。 実行時に、サービス オペレーターは、クラスター ID の一覧を含む "マルチクラスター構成" を指定または変更して、現在のマルチクラスターの一部であるクラスターを指定できます。 これは、いずれかのクラスターで管理グレインを呼び出すことによって行われます。

マルチクラスター グレイン

以下では、アプリケーション レベルでマルチクラスター機能を使う方法について説明します。

グローバル シングルインスタンス グレイン。 開発者は、クラスターが特定のグレイン クラスに関してグレイン ディレクトリを調整するタイミングと方法を示すことができます。 GlobalSingleInstanceAttribute は、単一のグローバル クラスターで Orleans を実行する場合と同じ動作が必要であることを意味します。つまり、すべての呼び出しをグレインの単一のアクティブ化にルーティングします。 逆に、OneInstancePerClusterAttribute は、各クラスターが独立したアクティブ化を行うことができることを示します。 これは、クラスター間の通信が望ましくない場合に適しています。

ログ ビュー グレイン (v.1.3.0 にはありません)。 グレインの状態の同期または永続化に対し、イベント ソーシングと同様の、新しい API を使う特別な種類のグレイン。 クラスター間およびストレージとの間で、グレインの状態を自動的かつ効率的に同期するために使用できます。 その同期アルゴリズムは再入可能なグレインで使っても安全で、バッチ処理とレプリケーションを使うように最適化されているため、グレインが複数のクラスターで頻繁にアクセスされるときや、ストレージに頻繁に書き込まれるときに、標準のグレインより優れたパフォーマンスを発揮できます。 ログ ビュー グレインのサポートは、まだメイン ブランチの一部ではありません。 geo-orleans ブランチには、サンプルと若干のドキュメントを含むプレリリースがあります。 現在、早期導入者によって運用環境で評価されています。