問題タブ [netflix-eureka]
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 - Spring クラウド FeignClients 使用中の 404
これは私のセットアップです:
FeignClients API と Eureka を使用して 2 番目のサービス (BaggageServiceApplication) を呼び出す最初のサービス (FlightIntegrationApplication)。
github のプロジェクト: https://github.com/IdanFridman/BootNetflixExample
最初のサービス:
コントローラーの1つで:
フライト統合サービス:
レジストリ サービス:
そして、これは 2 番目のサービス (手荷物サービス) です。
手荷物サービスの申し込み:
手荷物サービス:
BaggageServiceImpl:
フライト統合サービスの残りのコントローラーを呼び出すと、次のようになります。
何か案が ?
ありがとう、レイ。
spring-boot - Spring Cloud と Eureka のリボン: java.lang.IllegalStateException: Samarths-MacBook-Pro.local で使用できるインスタンスがありません
私は、Ribbon Load Balancer を使用して Spring Boot Eureka Client Application に取り組んでいます。
「TEST」という名前で Eureka に登録されたサーバーの 2 つのインスタンスがあります。クライアント側には、Eureka からサーバーをフェッチする次のコードがあります。
アプリケーション.yml
ただし、次のコマンドを使用して安静エンドポイントに到達すると、エラーが発生します。
これはエラーです:
スタックトレース:
サーバー リストが空のようです。
spring-cloud - Spring Cloud: Zuul を使用したカナリア デプロイ
私は Eureka と Zuul を使用して Spring Cloud を使い始めており、Blue/Green と Canary デプロイメントの構造化についていくつか質問がありました。これまでのところ、基本的な作業は完了しており、Eureka、Zuul、および構成サーバーが期待どおりに機能しています。私が達成しようとしているのは、1.0 と 1.1 などの 2 つのバージョンを持つサービスをセットアップすることです。特定のユーザーのサブセットについては、1.1 バージョンにルーティングし、それ以外のユーザーは 1.0 バージョンに移行する必要があります。
Zuul フィルター API はドキュメンテーションがやや浅く、いくつかの概念を理解するのに少し苦労しているので、ここでいくつか質問したいと思います。また、いくつかの基本的なフィルターを実行していますが、プリンシパルの ID とそれらが要求しているサービスを取得する以外には、ほとんど何もしません。私が壁にぶつかっているのは、同じサービスの 2 つの異なるバージョンを Eureka と Zuul に公開する方法を理解することです。私が興味を持っているいくつかのこと:
- ドキュメント、投稿、およびその他のスタック オーバーフローの間で、「サービス」と「クラスター」という用語は同じ意味で使用されているようです。これは正しいです?
- そうは言っても、という名前のサービスがある場合、
/simpleservice
2 つの異なるサービス ID (つまりsimpleservice
とsimpleservice-1.1
) を公開しますか? そうすれば、ターゲット ユーザーの 1 人が をリクエストすると/simpleservice
、Zuul に送信してもらうことになります。/simpleservice-1.1
- または、既存のサービス ID に別のノードを追加し、Zuul がバージョン 1.0 と 1.1 を区別できるように、各ノードに追加のメタデータを追加しますか?
- 正解は「上記のすべて」ですか?:)
rest - restTemplate exchange または execute の呼び出し中の前提条件エラー
残りのサービスへの呼び出しを呼び出そうとしています。残りのクライアントと残りのサービスの両方が、マシンの異なるポートで実行されています。execute メソッドと exchange メソッドの両方がヌル ポインター例外をスローしています。私の残りのクライアントは、Netflix Zuul Filter (Netflix Eureka Discovery エージェントに登録されています) です。違いがないことを願っていますが、スタック トレースの最後で「リボン」ライブラリについて言及しているようです。したがって、エラーはそれに関連している可能性があると思います。
@Autowired
Rest Client には RestTemplate オブジェクトしかありません。私は@LoadBalanced
注釈を使用していません。
localhost:port 番号の代わりに「Eureka Service」ID を使用すると、呼び出しが正常に実行されます。根本的なケースは何ですか?
例外スタック トラック:
spring - 安全なサービスに接続する Spring Cloud Eureka
セキュリティで保護されたクライアントに接続する必要があるスプリング クラウド Eureka を使用して、検出サーバーを確立しようとしています。Eureka サーバー自体を保護する方法を理解しています - それは問題ではありません。問題は別の方向にあります。つまり、Eureka が、それ自体が保護されているクライアント サービスと正常に通信できるようにする方法です。
言い換えると; Eureka に登録するディスカバリ クライアントがあります。そのクライアントは http 基本認証を実装しています。検出サービスに正常に登録できますが、検出サービスへのルックアップでそのサービスを利用しようとすると、(クライアント サービス自体で) 認証エラーが発生します。どこにでも資格情報があり、その方法がわかりません。どんな援助でも大歓迎です。
spring-boot - RestTemplate または discoveryClient - Spring Cloud アプリケーションで使用するのはどちらですか?
以下のコードはSpring ブログhereから借用しています。
他のマイクロサービスからマイクロサービス エンドポイントを使用するには、2 つのオプションがあります。
RestTemplate
- リクエストの負荷を分散する負荷分散機能を提供します。しかし、3 つのノードでサービスを実行している場合、RestTemplate は 1 つのノードがダウンしているか応答しているかを認識し、そのうちの 2 つだけで「インテリジェントに」負荷分散しますか。- サービス インスタンスを取得してリクエストを作成するために使用
DiscoveryClient
します (上記の例を参照)。この場合、負荷分散はされていませんが、返されたサービス インスタンスは応答性が高いと思います。
後者は負荷分散機能を失いますが、アクティブなサービス インスタンスを提供します
前者は負荷分散しますが、結果のインスタンスは非アクティブになる場合があります。
どちらを使用するのが好ましいですか?
上記の私の理解が間違っている場合は、修正してください。