問題タブ [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-cloud - EnableEurekaClient と EnableDiscoveryClient の違いは何ですか?
一部のアプリケーションでは、人々が EnableEurekaClient を使用しているのを見ました。また、他のサンプル アプリケーションでは EnableDiscoveryClient を使用しています。
これら2つに違いはありますか?
spring - OAuth2RestTemplate で @LoadBalanced を使用すると、クラスが見つかりません TypeToken
そのため、サービスへの直接の ip:port を使用して単純な RestTemplate を使用していました。
しかし今、私はそれをエウレカ対応にしたいと考えています。だから、@LoadBalanced
私は私のrestTemplateの上に追加しました。もちろんmyapp
こちらはeurekaに登録されているサービス名です。
しかし、これは次のように壊れます:
次の追加の依存関係を追加する必要がありますか?
?
spring - Spring Cloud Netflix /refresh はサービスの登録を解除します
Spring Cloud Eureka Server (ポート 8761) で実行されているポート 10351 (localhost:10351 ... testing ) でサービス「usermanagement」を使用しています。アプリケーションは正常に登録され、Eureka ダッシュボードで確認できます。
そのアプリケーション Bean を更新するために POST を発行すると、アプリケーションは Eureka Server から登録解除され、再登録されません。
POST http://localhost:10351/refresh
/refresh の後にアプリケーションを登録するにはどうすればよいですか?
POSTを発行した後のログは次のとおりです。
最後の行を参照してください。DiscoveryClient --- DiscoveryClient_USERMANAGEMENT/TUSFL000LKVT4TN:usermanagement:10351:0579e19a2d4e3e88d60686eb208d180a - 登録解除ステータス: 200
その後 - 何もない
このバージョンの Spring クラウドを使用しています
余談ですが、アプリ自体に application.yml はありませんが、自社の GIT から取得しています。DB dataSource パラメータが含まれています
spring - Spring Cloud Eureka サーバーが相互に複製されず、警告が表示される
Spring Cloud で2 つの Eureka サーバーを使用して相互にレプリケートしています。http://localhost:8761でページを開くと、次のメッセージが表示されました。
更新はしきい値を下回っています。自己保存モードがオフになっています。これは、ネットワーク/その他の問題が発生した場合にインスタンスの有効期限を保護できない場合があります。
eureka の application.xml は次のとおりです。
したがって、http://localhost:8761にアクセスすると、すべてのサービスが登録されていることがわかりますが、http://localhost:8762にアクセスすると、マイクロサービスが登録されていません。
理由はありますか?
netflix - HTTPS URL への Zuul ルーティング時のエラー
Eureka に登録され、Eureka ダッシュボードに表示される Spring Boot アプリケーション (最近 HTTPS + 自己署名証明書用に有効化) があります。
ユーザーリクエストを取得してSpring Bootアプリケーションに渡すZuulフィルターレイヤーがあります。アプリが HTTP 経由でアクセスできるようになるまで、これは正常に機能していました。しかし、HTTPS を有効にすると、zuul ルーティングが失敗します。
私のyamlファイルのZuulルート構成は次のとおりです。私の Zuul Route 構成には、HTTPS 対応の URL/App 用の特別な構成が必要ですか?
これは例外スタック トレースです (Zuul が HTTPS URL ではなく HTTP URL にルーティングしようとしていることを示しています)。
更新: isRibbon セキュア プロパティを追加した後、このエラーはなくなり、新しいエラーが発生しました。
spring-security - Zuul が Eureka に登録されたマイクロサービスにリダイレクトした後、認証されたプリンシパルが失われる
Netflix スタックを操作するために、次のように設定しています。
- エウレカサーバー
- Zuul プロキシ (Eureka に登録済み) を使用して外部に公開されたモジュール
- 多数のバックエンド マイクロサービス (Eureka に登録済み)
私の問題は、プロキシで (マイクロサービスにリダイレクトされる) URL を 2 回目または 3 回目に呼び出すと、認証されたプリンシパルが失われることです。
ログ エントリは次のとおりです。
Zuul プロキシを実装しました。プリンシパルをリクエスト ヘッダーに渡してリダイレクトしますが、リクエストが 2 回目に送信されると、このフィルターは呼び出されません ( Spring Security はリクエストを匿名リクエストとしてキャプチャします)。
ここで何が起こっているのかについてのアイデアはありますか?
ありがとう
編集: Fiddler で調査したところ、2 つの要求が成功した後、拒否された要求が HTTP 302 コードで応答されることがわかりました。
編集 #2 : これは私の Spring のブート セキュリティ構成です。
spring-cloud - Eureka がサービスの登録を解除することはありません
現在、Eureka が登録済みサービスの登録を解除しないという問題に直面しています。Eureka サーバーの例を git ハブから直接取得し、変更を 1 つだけ加えeureka.enableSelfPreservation = false
ました。私の application.yml は次のようになります。
登録されたサービスの 85% が 15 分以内にハートビートの配信を停止した場合、Eureka は問題がネットワークに関連していると見なし、応答していないサービスの登録を解除しないことを読みました. 私の場合、実行中のサービスは 1 つだけなので、自己保存モードを無効にしました。私は突然プロセスを強制終了し、Eureka はサービスを無期限に登録したままにします。
私のクライアントの application.yml は次のようになります。
私の目標は、サービスが実行されていないことを Eureka がすばやく検出し、開始された別のサービスがすぐに登録できるデモを作成することです。
今のところ、eureka クライアントを起動すると、3 秒で登録されます。サービスが突然終了した場合、登録が解除されることはありません。サービスを強制終了すると、Eureka ダッシュボードには次のように表示されます。
緊急!EUREKA は、インスタンスが起動していないのに起動していると誤って主張している可能性があります。更新はしきい値を下回っているため、安全のためだけにインスタンスが期限切れになることはありません。
この動作を防ぐにはどうすればよいですか?
spring - Springで統合テストを行うときにEurekaをモックする方法は?
Spring Boot でコントローラーをテストする簡単な Junit を実行しています。テスト コードは次のようになります。
application-integrationTest.properties には、次の Eureka 設定があります。
junit テストが開始されると、次のように表示されます。
2015-09-16 16:46:03,905 ERROR localhost-startStop-1 com.netflix.discovery.DiscoveryClient Can't get a response from http://localhost:8767/eureka/apps/
Can't contact any eureka nodes - possibly a security group issue?
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:184) ~[jersey-apache-client4-1.11.jar:1.11]
テストはパスします。それは問題ではありませんが、Eureka に関係する多くの例外スタック トレースが見られます。質問は、テストを行うときに eureka をモックする方法や、ブラインアップをスキップする別の方法があるかどうかです。
テストが失敗し、tst がはるかに高速に実行される場合、関連するスタック トレースを簡単に確認できるという利点があります。