問題タブ [spring-cloud-feign]
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.
rest - 基本的な例で Feign Client を動作させることができない
Feign Client を動作させることができません。最初に POST で試してみました。タイプが正しくないというエンコーダー/デコーダーに関連するエラーが発生し続けました。次に、github で単純な GET API を呼び出す例を最終的に見つけ、試してみることにしました。それでも失敗する
Github とオンラインで、Feign Client Spring-Cloud、OpenFeign、Netflix.feign の複数のバージョンが異なるバージョンで表示されています。本番環境で使用する必要がある、最適で安定した Feign クライアントを説明できる人はいますか?
応用:
AutoWire の問題を解決できると考えて、注釈のすべての可能な順列を試しましたが、それでも失敗します
2016-07-20 18:15:42.406[0;39m [31mERROR[0;39m [35m32749[0;39m [2m---]0;39m [2m[メイン]][0;39m [36mo.s.boot .SpringApplication [0;39m [2m:[0;39m アプリケーションの起動に失敗しました
org.springframework.beans.factory.BeanCreationException: 「testWLCController」という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; です。ネストされた例外は org.springframework.beans.factory.BeanCreationException: 'com.aa..controllers.GetFeignClient' という名前の Bean の作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] で java.lang.NullPointerException です。組織 run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] at com.paa.ServiceApplication.main(ServiceApplication.java:44) [bin/:na] 原因: org.springframework.beans.factory.BeanCreationException: フィールドを自動配線できませんでした: プライベート com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; ネストされた例外は org.springframework.beans.factory.BeanCreationException: 'com.paa.controllers.GetFeignClient' という名前の Bean の作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) で java.lang.NullPointerException です ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE ] org.springframework.beans で。
spring-security-oauth2 - 特定の FeignClient の RequestIntercepor
AccessToken を OAuth2ClientContext から RequestTemplate のヘッダーに自動的にコピーする RequestInterceptor があるため、内部サービスは、シナリオを開始したモバイル デバイスから取得したものと同じ AccessToken を使用して相互にシームレスに呼び出します。これが、サービス メソッドの承認を管理する方法です。これはインターセプター コードです。
これは @Beans 構成です。
問題は、さまざまな FeignClient があり、その一部が SMS テキストに使用するサービスなどのサードパーティ サービス用であり、そこに AccessToken を送信したくないことです。
RequestInterceptor 内でどの FeignClient から来たのかを判断するにはどうすればよいですか?
spring-cloud - Spring Cloud Feign: Feign は RestTemplate と比較して十分に効率的ですか?
Feign のソース コードをざっと見てみると、Feign は JDK を使用してHttpUrlConnection
HTTP リクエストを発行し、接続プールを使用せずにリクエストが終了したら閉じることがわかりました。私はこの種の方法の有効性を疑っています。次に、Apache Http Client または OKHttp に切り替えて HTTP リクエストを送信できるRestTemplate
というSpring のドキュメントを読みました。RestTemplate
注: デフォルトでは、RestTemplate は標準の JDK 機能に依存して HTTP 接続を確立します。HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory) プロパティを使用して、Apache HttpComponents、Netty、OkHttp などの別の HTTP ライブラリを使用するように切り替えることができます。
RestTemplate はパフォーマンスの観点から Feign よりも優れているということですか?
spring-cloud - Spring Cloud: @FeignClient で Hystrix を構成する方法
次のサービスがあります。
デフォルトのタイムアウトとスレッド プール サイズを変更するには?
spring-cloud - Feign: Spring は jar ファイルで @FeignClient Bean を自動配線できません
に@FeignClient
宣言がありea.jar
ます:
この jar を maven の依存関係として追加してから、注入します。
私はいつも得ましたNoSuchBeanDefinitionException
:
しかし、@FeignClient
宣言を同じプロジェクトに移動すると (jar 依存関係として追加されない)、この例外はなくなります。
これについてはわかりません、助けてください
spring-boot - java.lang.IllegalStateException: IP に使用できるインスタンスがありません
以下は私のbomマイクロサービスです:
上記のマイクロサービスは、マイクロサービスの一部である別のマイクロサービスへの残りの呼び出しを実行しようとしています。
以下の例外が発生します。
Eureka、BOM、および Part マイクロサービスが Azure にデプロイされています。Eureka は両方のマイクロサービスを登録し、「/service-instances/plm-part-ms」を使用してマイクロサービスの詳細を bom マイクロサービスに分割することもできます。ここで、「plm-part-ms」は部分マイクロサービスのスプリング アプリケーション名です。どんな助けでも大歓迎です!
spring-boot - Spring Cloud と Spring Boot で適格なプロパティを使用して Eureka でサービスを発見するにはどうすればよいですか
Spring Boot を使用して開発された約 50 のマイクロサービスがあります。Spring Cloud を使用してサービスを Eureka に登録し、Feign を使用してコンシューマからサービスを呼び出します。@FeignClient("<foo>")
コントラクトは非常に標準的で、コンシューマーはアノテーション付きのインターフェースを使用してfoo
、Eureka に登録されているサービスを見つけます。ターゲット サービスでの登録、ルックアップ、および呼び出しはすべて、サービスの 1 つまたは複数のインスタンスが実行されている状態で期待どおりに機能します。
foo
各インスタンスが特定のステレオタイプまたは指定を持つ複数のインスタンスを同じサービスが実行している可能性があるという新しい要件があります。たとえば、 の一部のインスタンスはfoo
サードパーティ統合の同期ワークロードをfoo
処理することが期待されており、 の一部のインスタンスは内部メッセージ (非同期ワークロード) を処理することが期待されています。ブートストラップ (Spring Cloud 構成の一部を介して実行) で定義されるサービスで呼び出される構成プロパティをstereotype
定義し、サービス インスタンスにワークロードを処理するsync
ように指示します。async
構成は次のようになります。
さらに、このプロパティをサービス登録時にプロパティeureka.instance.metadatamap
としてエウレカのマップに追加します。Eureka が登録されると、サービスに対してこの値が表示されるようになったことがわかります。stereotype
foo
foo
ここまでは順調ですね。今質問:
DiscoveryClient
または Feign to lookupのいずれかに構成 (または注釈) メカニズムがありますが、修飾子としてfoo
を使用しています。stereotype
言い換えれば、コンシューマ アプリケーションが Eureka をルックアップするとき、Eureka に、たとえばstereotype
isのインスタンスのみを与えるように指示できますasync
か? これが可能であれば、コンシューマー コンポーネントは、非同期ワークロードfoo
を処理するインスタンスにのみ非同期ワークロードが送信されるようにすることができます。
これまでのところ、私の研究では何も見つかりませんでした。ここで概説されているようにDiscoveryClient
Eureka REST インターフェイスを使用し、返された各インスタンスのメタデータ マップを検索してターゲット エンドポイントを見つけるサンプル (オーバーライドできる可能性があります) を作成しました。しかし、それは力ずくのように聞こえました。できれば既存のメカニズムの 1 つを使用してこれを行うのが理想的です。これにより、車輪を再発明する代わりに、Feign の負荷分散と再試行機能を引き続き使用できるようになります。GET /eureka/v2/apps/appID
spring-cloud-netflix - Spring Cloud Feign: Feign が POST リクエストの発行時に HTTP ボディにパラメーターを入れない
これが私の Feign インターフェイス定義です。
これはPOST
リクエストですが、feignはリクエスト本文の代わりに URL にpage
andを入れます:size
理由がわかりません
java - HystrixFeign クライアント フォールバックで原因を取得する際の問題
HystrixFeign クライアントがあり、サービス呼び出しが失敗した問題を修正できるように、フォールバックの理由を知りたいので、フォールバックの実装で原因/例外を取得しようとしています。しかし、以下の実装では原因がわかりません。これは問題なく機能し、フォールバックは常に呼び出されています。しかし、私には理由がわかりません。Feign と Hystrix は初めてです。私のアプリケーションは 1.6 年前に Java で書かれており、これは拡張呼び出しの一種です。だから私はラムダ式に行くことができません。
以下のように定義されたクライアントインターフェイスがあります
私の FeignClientFacory は以下のようなものです