クラスタリングと負荷分散
クラスタリングと負荷分散とは
サーバークラスタリングは、複数のコンピュータサーバーをクラスターに変換する方法であり、単一のシステムのように機能するサーバーのグループです。
負荷分散とは、コンピュータ、サーバークラスター、ネットワークリンクなど、複数のコンピューティングリソース間でワークロードを分散することです。 負荷分散は、リソース使用量の最適化、スループットの最大化、応答時間の最小化、および単一のリソースの過負荷の回避を目的としています。
MongoDBレプリカセットは、同じデータセットを維持するmongod
プロセスのグループです。 レプリカセットは、冗長性と高可用性を提供し、すべての運用展開の基礎となります。
高可用性(HA)は、システムの一般的な特性であり、合意されたレベルの運用パフォーマンス、通常は稼働時間を通常よりも高く確保することを目的としています。
RESTHeartは、マイクロサービスや他のスタイルの分散アーキテクチャに非常に適しています。 AWS ECSやFargate、Kubernetesなどのクラスタリング技術で正常にデプロイされています。
動作方法
RESTHeartは基本的にHTTP要求を受信し、Javaドライバを介してMongoDBクエリに変換します。 クラスターを作成することは、他のHTTPサーバーと同じように、選択したクラスタリング技術の上にプレーンなHTTPロードバランサーを置くことの問題でした。
RESTHeartはすべての機能でステートレスですが、トークン認証に使用されるデフォルトのトークンマネージャではステートレスです。 RESTHeart OSSに付属するこの実装は、トークンをメモリに保持します。 その結果、クラスタリングはサポートされません。
したがって、restheartノードのクラスターは、トークン認証を使用するときにスティッキーセッションを必要とします。
RESTHeartインスタンスは(高価な同期手順を避けるために)直接通信しないため、同じクラスター内の他のインスタンスによって作成された認証トークンを検証 この状況を克服するために、HTTPロードバランサーはスティッキーセッショントークンをcookieに挿入し、それに応じてクライアントからRESTHeartインスタンスへの通 スティッキーセッションは、アーキテクチャの観点から、システムにレベルの状態を導入し、有効期限のタイムアウトを慎重に調整する必要があります。
RESTHeart EE capabilities
RESTHeart商用ライセンスを購入すると、スティッキーセッションを必要とせずにクラスタリングを簡単に設定できます。 これにより、完全にステートレスな展開が可能になります。
ライセンスを使用すると、高速でシンプルで安全な、クラスター内の任意のRESTHeartノードによって確認できる暗号署名されたトークンを作成する特殊なトークンマネージャを得ることができます。
詳細については、Token Managerのドキュメントページを参照してください。要約すると、高可用性RESTHeart+MongoDB構成のトップレベルの手順は次のとおりです:
-
MongoDBレプリカセットを作成する;
-
MongoDBレプリカセットに接続されたRESTHeartクラスターを作成します;
-
その上にHTTPロードバランサーを配置します。
クラスタリング、負荷分散、高可用性についての詳細をお知りになりたい場合は、お問い合わせください。
Leave a Reply