問題タブ [spring-cloud-loadbalancer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - サービスに使用できるサーバーがありません: Netflix リボンでルーティング中
私はSpring Boot 2.3.4で以下の作業コードを持っていました
構成:
スプリング ブート バージョンを 2.4.2 にアップグレードすると、コードを以下に変更する必要があります。
spring boot 2.4.2 で netflix-ribbon が削除されたため、これらの依存関係を追加する必要がありました。ルーティングでは、以下の警告が表示されます。ロードバランサーが初期化されていないことを意味します。
この問題を解決するには? これをスプリングロードバランサーに移行しようとする代替手段はありますか?
アップグレード後の依存関係ツリー:
spring - Spring クラウド ロードバランサーのデフォルトの RoundRobin アルゴリズムを変更する
リボンが現在メンテナンス モードになっているため、リボンから Spring Cloud LoadBalancer に移行しようとしています。デフォルトの spring-boot 2.4.2 バージョンを使用して、Spring 初期化でリボン依存関係を追加できません。私は現在 OpenFeign を使用しており、デフォルトの RoundRobin Load Balancer 構成を Random Rule に変更しようとするテストを行っています。これは私が持っているものです
リボンを使用する場合、デフォルトの構成を変更する必要がありました
クライアントにアノテーション @RibbonClient を追加します (MainApplication クラスに追加しても機能します)。
しかし、spring-cloud-loadbalancer を使用して機能させることはできません。spring-cloud-starter-openfeign 依存関係にデフォルトで含まれていることを知っているので、私の pom は次のようになります
pom.xml
FeignClients をこのようにする (リボン注釈なし)
そして、私のRestControllerはこのように
他に何もしなくても、ロード バランシングが機能しているように見えます (実行中の hello サービスの 2 つのインスタンスがまだ機能しており、代替を呼び出しています)。違いをテストします。FeignConfiguration クラスで何かを変更する必要があると思いますが、検索しても成功しませんでした。
リボンを取り除き、問題なく Spring Cloud LoadBalancer を使い始めることができるように、私を助けてくれることを願っています! :C