すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:MSE Nacosインスタンスでアプリケーションインスタンスの変更された重みが有効にならない場合はどうすればよいですか?

最終更新日:Jan 08, 2025

このトピックでは、重みを変更した後に、Microservices Engine (MSE) Nacosインスタンスでアプリケーションインスタンスの重みが有効にならない問題を解決する方法について説明します。

問題の説明

MSEコンソールでアプリケーションインスタンスを追加または変更すると、ロードバランシングのためにアプリケーションインスタンスの重みが設定されます。ただし、トラフィックが呼び出されると、変更された重みに基づいてトラフィックは分散されません。

考えられる原因

  • 使用しているアプリケーションフレームワークが、重みベースのロードバランシングをサポートしていません。

  • ロードバランシングは、MSE Nacosインスタンスの重みプロパティではなく、アプリケーションフレームワークのロードバランシング設定に基づいて実装されています。

  • アプリケーションのアドレス指定が、重み値に基づいて実装されていません。

解決策

アプリケーションインスタンスの重みは、MSE Nacosインスタンスのプロパティにのみ該当します。重み値を変更すると、インスタンス情報に含まれる重み値がNacosクライアントにプッシュされます。実際には、使用方法が異なるため、重みプロパティが無視される場合があります。

  • 使用しているアプリケーションフレームワークが、重みベースのトラフィック分散をサポートしていません。たとえば、Spring Cloud Alibabaなどのフレームワークは、重み値をゼロゼロ以外の値としてのみ識別します。重み値がゼロの場合、トラフィックは分散されません。重み値がゼロ以外の場合、トラフィックは分散されます。 MSE Nacosインスタンスの重み値に基づいてロードバランシングを実装することはできません。次のいずれかの方法を使用して、問題を解決します。

    • アプリケーションフレームワークに重みベースのトラフィック分散を導入できるかどうかを確認します。重みベースのトラフィック分散を導入できる場合は、この機能を実装できます。

    • 既存のアプリケーションフレームワークを別のアプリケーションフレームワークに置き換えます。

  • 使用しているアプリケーションフレームワークには、独自のロードバランシング設定方法があります。 MSE Nacosインスタンスの重みプロパティは使用できません。 MSE Nacosインスタンスの重みプロパティには、DubboSpring Cloud Alibaba + Loadbalanceが含まれます。

    オープンソースコミュニティに助けを求めるか、ドキュメントを参照して、ロードバランシングの設定手順を開始することができます。

  • アプリケーション開発にアプリケーションフレームワークが使用されていない可能性がありますが、アプリケーションがサービスを処理するときに、アドレス指定に重み値を使用していません。

    • アプリケーションインスタンスリストを取得した後、weightフィールドに基づいてカスタムアドレス指定ロジックを実装できるようにアプリケーションを有効にします。

    • NacosクライアントのデフォルトのselectOneHealthyInstanceメソッドを使用して、アドレス指定を実行します。詳細については、Nacos Java SDKをご参照ください。