Dubboのロードバランシング戦略

Dubboは分散サービスフレームワークで、サービスの負荷平準化を実現するための負荷平準化戦略が多様に取り揃えられています。以下はDubboがサポートする負荷平準化戦略です。

  1. 利用可能なサービスプロバイダーを1つランダムで選択して呼び出します。
  2. ラウンドロビンロードバランシング:順番に利用可能なサービスプロバイダーを1つずつ選び、ルーピングして使用します。
  3. サービスプロバイダーの利用時に、現在アクティブな呼の数が少ないプロバイダーを選択して動的ロードバランシングを実現する、最小アクティブコール方式(LeastActive Load Balance)。
  4. リクエストのキー値でハッシュ計算を行い、同じキー値のリクエストは同一のサービスプロバイダへルーティングされる、コンシスタントハッシュ方式(ConsistentHash Load Balance)
  5. サービス提供者の重み付けに基づく無作為選択を実行する加重ランダムロードバランシング
  6. サービス提供者の重みによって加重ラウンドロビンのロードバランスが選択されます。
  7. 平均応答時間を考慮した加重選択を行うレスポンス タイム ウェイテッドロード バランシング

Dubboサービスプロバイダの配置文件におけるloadbalance属性を設定することで、利用するロードバランシングの方式を指定することができます。例を示します。

<dubbo:service interface="com.example.UserService" loadbalance="random" />

サンプル構成では、ロードバランシングにランダムポリシーを使用することを指定しています。

bannerAds