問題タブ [netflix-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.
java - Netflix Feign を使用してデータ ストリームを渡す
職場では、Netflix のFeign Clientを使用してサービス間のリクエストを処理しています。しかし、特に Netflix のよく知られているビデオ ストリーミングのビジネス モデルを考えると、データをストリーミングする能力が明らかに欠如していることに私は戸惑っています。ここで明らかに何かが欠けています。
説明するために、データのストリームをService A
Feign Client に要求し、応答でストリームを送信するとします。この時点で、Feign Client のメソッドが呼び出されます。Service B
Service B
execute()
ラベルの付いた行PROBLEM
は、私を混乱させるものです。
- オブジェクトには、
request
読み取るストリームの種類さえありませんbyte[] body
。. - 送信側では、本体全体が一度に書き込まれ
OutputStream
ます。代わりにデータをチャンクするべきではありませんか?
例えば
リクエストに だけbyte[] body
ではなくストリームが含まれていた場合は、それをさらに改善して、データが利用可能になったときにデータを送信できます。
私は、このサービス アーキテクチャの分野に非常に慣れていません。私は何が欠けていますか?
spring-cloud - Feign/Ribbon/Eureka を使用した spring-cloud - サービス インスタンスを検出できない
私の偽のクライアントは現在、Eureka を使用してサービス インスタンスを検出できません。私の構成には、次の注釈が含まれています。
次の依存関係を含めました (spring-cloud 1.0.0-BUILD-SNAPSHOT):
私が知る限り、偽のクライアントは a を使用するため、使用可能なサービス インスタンスのアドレスを構成ファイル (プロパティ)ConfigurationBasedServerList
で明示的に指定する必要があります。ribbon.serverList
ただし、明示的に指定すると、すべてが正常に機能します。
私のテスト アプリケーションは、Eureka 対応のリボン実装を使用するように自動的に構成された Spring RestTemplate ベースのクライアントも使用します。奇妙なことは、RestTemplate が最初に呼び出された場合、Feign クライアントが正常に動作している (つまり、サービス インスタンスを見つけている) ことです。RestTemplate セットアップは、どこかでいくつかの (静的) 初期化を実行するように見えます。これは、偽のクライアントに役立ちます。
Feign サポートの設定方法に何か見落としがありますか?
java - Spring Cloud: リボンなしで Feign を使用する方法
クライアント側のロードバランサ リボンなしで Feign を使用したいと考えています。これは、分散して高可用性を実現する必要がある Eureka を実行したくないためです。代わりに、Route53 によって管理される内部 DNS 名を持つ内部 ELB は問題なく機能します。
プレーンな URL を@FeignClient
常にに提供するno loadbalancer found for ..
と .
Spring Cloud Netflix には が付属しており、 fromが存在FeignRibbonClient
する場合に使用されます。ただし、この依存関係が除外されている場合は壊れています。ILoadBalancer
ribbon-loadbalancer
FeignConfiguration
アイデア歓迎 :-)
spring-cloud - スプリング クラウドでの hystrix フォールバックに関する問題
スプリング クラウドで HystrixCommand を使用してフォールバックしようとすると、メソッド プロキシが機能しません。メソッドでスローされた例外は、hystrix コマンド アスペクトによってキャッチされません。
Spring Cloud Hystrix 統合でこの問題に直面しています。spring cloud 1.0.0.RC2 リリースを使用しています。問題を再現するためのサンプル プロジェクトを次に示します。
これは、ライブラリの使用方法に問題がありますか?
java - リボン/eureka で使用すると、クライアント エラーを偽装する
以下は、上記のクラスのテストです。
TestNG を使用してテストを実行すると、次のエラーがスローされます。
com.netflix.client.ClientException: ロード バランサーにクライアント用の使用可能なサーバーがありません: abc-service
Eureka サーバーは構成サーバーを見つけるように構成されています。 application.yml
eureka サーバーの構成は次のとおりです。
構成サーバー、eureka サーバー、および abc-service は、上記のテストを実行する前に、Spring Boot アプリとして実行されます。abc-service は、起動時に自分自身を Eureka に登録します。
spring-cloud - Spring Cloud Feign クライアントは、異なるインスタンスの異なるコンテキスト ルートに接続しません
私は、Eureka を使用した Spring クラウドと、リボンを使用した Feign クライアントを評価している最中です。私が作成してきたサンプル アプリケーションには、クライアントを問題なく受信する Eureka Server があります。
ただし、FeignClient を使用する場合、RequestMapping にはコンテキスト パスを含める必要があります。
私の最初のケースでは、同じ VIP で ID が異なる 2 つのサービスがありました。- localhost:8080/ の 1 つのサービス - localhost:7400/HelloWorld の 1 つのサービス
異なるコンテキスト ルートの理由は、簡単に変更できない展開構造の可能性があるためです。
これは、クライアント内で構成する必要があるものですか? またはアプリケーションまたはこれは不可能ですか?
これが私の@FeignClientです
理想的には、RequestMapping は値「/」のみです。
spring-cloud - Spring Cloud Feign クライアントは Spring Web Controller とインターフェースを共有できますか?
Spring MVC と Feign Client (Spring Cloud を使用) を使用してエンドポイントとクライアントを構築します。私は、両端に同じ注釈が必要であり、それらがほぼ同期している必要があると考えていました。多分私はそれらをインターフェースで定義し、両端にそれを実装させることができます。
テストしてみると、Spring Web エンドで実際に機能することに少し驚きました。
しかし、Feign クライアントに対して同じことを行う方法を見つけることができません。
私は基本的にインターフェースを持っています:
そして、RestController
そして最後に Feign Client
Feign クライアントは、継承された注釈を読み取っていないようです。同じことを達成できる他の方法はありますか?直接注釈を付けずに、ServiceInterface を Feign クライアントにすることができる場所はどこですか?
java - Feign で @RequestLine を使用する
次のように定義された動作中の Feign インターフェイスがあります。
これを @RequestLine を使用するように変更すると
私は例外を取得します
原因: java.lang.IllegalStateException: メソッド getLinksForTrack に HTTP メソッド タイプのアノテーションが付けられていません (例: GET、POST)
理由はありますか?
spring-cloud - Spring Cloud と Netflix の Eureka と Feign を使用するマイクロサービスを保護する
私は、Spring Cloud と Netflix のスタック、特に Eureka と Feign を使用して、マイクロサービスを構築および実装するための最良の方法を見つけようとしています。それぞれについて、セキュリティ関連の質問がいくつかあります。
ユーザー名/パスワード資格情報を使用して Eureka Server を構成できることがわかりました。これにより、許可されていないアプリを排除できますが、各アプリは Eureka にアクセスするための資格情報を共有する必要があります。各マイクロサービスが独自のものを持つことができるように、資格情報のレジストリを作成する簡単な方法はありますか? (Spring Security のスタックなどにフックすると便利
UserDetailService
です)マイクロサービスが接続され、偽物を介して通信すると、元の要求で使用された資格情報を、他のマイクロサービスに対して行われる追加の呼び出しに共有/渡すことができますか? したがって、"Jim" がFooServiceで要求
/foos
し、FooServiceが BarService で要求した場合、 BarServiceは Jim がそれらを要求したことを認識しますか?/bars
Jim > FooService > BarService - BarService は、要求が Jim のために処理されていることを認識しています...
java - 別のプロジェクトから FeignClient を注入する際のエラー
別のプロジェクトから偽のクライアントを自動配線するのに問題があります。偽のクライアントの実装が生成および注入されていないようです。
これは私が得ているエラーです。
偽のクライアントは非常に単純です。簡潔にするためにインポートを削除しました。
コンポーネントスキャンをプロジェクトに追加して、アプリケーションとそのコントローラーを含め、他のプロジェクトに偽のクライアントを含めました。
簡潔にするためにほとんどのインポートが削除された残りのコントローラー。
さまざまなプロジェクトやさまざまなパッケージで偽のクライアント インターフェイスを定義しようとしましたが、アプリケーションと同じパッケージに配置した場合にのみ成功しました。これは、スキャンにパッケージを含めているにもかかわらず、コンポーネント スキャンの問題であると思われます。再利用可能な「コントラクト」を定義し、それを使用するアプリケーションで偽のクライアントを定義する代わりに、各プロジェクトに一意のパッケージ構造を持たせるために、偽のクライアントインターフェイスを共有プロジェクトに保持したいと思います。
ありがとう、ウェス。