マイクロ・サービス用にSpringブートを使用しています。スプリングブート・ヘルス・ベースのロード・バランシング
スプリングアクチュエータは、特別なhealth
とmetrics
エンドポイントをアプリに追加します。これにより、実行中のインスタンスから基本的な情報を得ることができます。
私は、集中型のロードバランサを作成し、健康状態によってインスタンスを選択する(リバース)プロキシ(Zuulやリボンなど)を作成することをお勧めします。
server 1
server 2
クライアント -
例えば、私は次のmicroservices
client
proxy
を(私はこれを実装したいと思います<)持っていますprにhttp要求を送信するオキシの場合、プロキシはサーバインスタンスのどれが負荷が最も少なく、そのインスタンスに要求を転送するかを決定できるはずです。これを行う簡単な方法はありますか?
おかげで、あなたは様々な負荷データの選択をしたい場合、あなたは、データ「時間をかけて負荷」のいくつかの種類を蓄積カスタム
HealthIndicator
のを実装するために、あなたのロードバランサでこれを使用することができ
これは、分割する負荷の種類によって異なります。純粋にリクエストベースの負荷の場合、サーバがすべて稼働している場合、トラフィックを50/50に分割しないでください。それ以外の場合、load-over-timeを蓄積するために 'health'エンドポイントを拡張し、ロードバランサ内のそのデータを使用してトラフィックを送信する場所を決定することができます。 –
現在の負荷係数(CPUなど)に基づいてサーバは、要求の数ではないので(基本的に純粋にリクエストベースではありません) – krisy