dubboの負荷分散はどのように実現しますか
Dubboのロードバランサは以下の方法で実現できます。
- 毎回、利用可能なサーバからランダムに1つを選択して呼び出す。
- ラウンドロビンロードバランシング: 使用可能なサービスプロバイダーのリストから順番に1つずつ選択して呼び出します。
- 負荷に応じて、リクエスト数の少ないサービス提供者へ優先的にリクエストを転送する方式。
- ハッシュ関数でリクエストのキーをマッピングし、サービスプロバイダーのリストからノードを1つ選択して呼び出す一致ハッシュロードバランシング
- サービスタイヤから対応するサービスが呼び出される際、そのサービスタイヤについて定義済みの weight に応じて weightedラウンドロビンで選択されます。各サービスの毎秒処理可能なリクエスト数に応じて weight を調整いただくことで、サービスの可用性を高めます。
- 高い可用性のロードバランサー:ヘルシーなサービスプロバイダーのみを選択して呼び出し、ヘルシーでないサービスプロバイダーを検出した場合は使用可能なリストから削除する。
Dubboでは、構成ファイルまたはプログラムにより負荷分散の戦略を選択することができます。たとえば、サービスプロバイダとコンシューマの構成ファイルでloadbalance属性の値を設定して負荷分散の戦略を選択したり、コードで@LoadBalanceアノテーションを使用して負荷分散の戦略を指定したりします。