問題タブ [spring-cloud]
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 Cloud Netflix 1.0.0 RC2 がアプリケーションを壊す
Spring Cloud Netflix 1.0.0.RC1 で正常に動作するアプリケーションがあります。同じプロジェクトをアップグレードして RC2 アーティファクトを使用すると、アプリケーションの起動時に次の例外が発生します。
POM ファイルは次のようになります。
バージョンと同じ RC1 の POM ファイルは正常に動作します。javax.el:javax.el-api:2.2.4 を手動で POM に追加しようとしましたが、その依存関係があると、Tomcat が正しく起動しません (ログにエラーはありませんが、Tomcat も起動しません)。
spring-boot - Spring Boot + Eureka Server + Hystrix with Turbine: 空のturbine.stream
Spring Boot (Spring Cloud を使用) + Eureka Server + Hystrix Dashboard および Turbine ストリームを実行しようとしていますが、これまでに解決策が見つからないという問題が発生しました。Spring Boot 1.2.1.RELEASEと Spring Cloud 1.0.0.RC2を使用しています。ここに私が持っているものがあります:
最初のインスタンスは、Eureka サーバーと Hystrix ダッシュボードを実行しています。
build.gradle
ここでそのインスタンスを見つけることができます - https://gist.github.com/wololock/570272ad7cf2d14a4d3c
Eureka サーバーは正常に実行されています。登録済みのインスタンスが eureka サーバーのダッシュボードに表示されます。ID を使用LoadBalancer
して、登録済みのインスタンスへの URL を取得することもできます。これまでのところ、すべて問題ありません。
@EnableHystrix
注釈付きで実行@HystrixCommand
され、Hystrix によって監視される必要があるメソッドを定義するために使用されるいくつかのインスタンスがあります。単一インスタンスの hystrix.stream への URL を Hystrix ダッシュボードに渡すと、問題なく実行されていることがわかります。
複雑なものではなく、別のタービンサーバーもあります。
build.gradle
ここでは、Turbine サーバー インスタンスを見つけることができます - https://gist.github.com/wololock/ff0d855b8a890232851e
これは非常に単純な構成を使用しており、サンプル タービン アプリ ( https://github.com/spring-cloud-samples/turbine ) で提供されているものに基づいて構築されています。
これらのインスタンスを順番に実行した後:
- エウレカサーバー
- タービンサーバー
- クライアントインスタンスを発見し、
eureka サーバーに 2 番目と 3 番目のインスタンスを登録しました。タービン サーバーのログによると、1 つのインスタンスが稼働しています。
1 つのインスタンスから hystrix.stream を呼び出すと、次のように動作しcurl http://localhost:8885/hystrix.stream
ます。
しかし、turbine.stream を hystrix ダッシュボードにアタッチすると、何も表示されません。ログは言う:
もしそうなら、私はcurl http://localhost:8989/turbine.stream
得るだけです:
私の質問は、セットアップして実行する際に何かを見逃していませんか? 以前は、eureka とタービン サーバーを単一のインスタンスに配置してこれを管理しようとしましたが、その場合、タービンは適切なアプリケーション名を使用して eureka に登録されたアプリケーションを見つけることさえできませんでした。エウレカとタービンを分割して進みましたが、まだ正常に動作しません。
どんな提案にも感謝します。さらに情報が必要な場合はお知らせください。重要な情報を見逃している可能性があります。
更新 20150209
デイブの提案に従って、 のapplication.yml
ファイルに小さな変更を加えましたturbine-server
。現在、ファイルには次のもののみが含まれています。
しかし、turbine.stream は機能しません。タービンサーバーが eureka サーバーに登録されたクライアントを認識した後、特定の例外で失敗します。
'default'
と同様に書いてみましdefault
たが、残念ながら結果は同じです。
解決
適切な解決策を見つけてくれた Dave Syer に感謝します。基本的に、トリックが追加したのは次のとおりです。
application.yml
タービン サーバー アプリケーション インスタンスにファイルします。奇妙に見えるかもしれませんが、うまくいくとは思いませんでしたが、うまくいきます。ここで、hystrix クライアント アプリケーションを呼び出すと、hystrix.stream
このアプリケーションによって提供される適切な情報とturbine.stream
、Turbine サーバーからも適切な情報が得られます。私の現在application.yml
のタービンサーバーは次のようになります。
turbine.appConfig
hystrix クライアントに関する情報を (ID ごとに) 保持します。別のクライアントをタービン サーバーに追加するには、別のインスタンス ID を前の ID とコンマで区切って入力するだけです。そして、それはすべての人々です:)
spring - Spring Boot を使用しない Spring Cloud Config クライアント
Amazon Elastic Beanstalk に WAR ファイルとしてデプロイされた既存の Spring Web アプリがあります。現在、プロパティ ファイルを http リソースとしてロードして、プロパティ プレースホルダー構成解決の単一ソースを提供しています。これを新しいSpringクラウド構成サーバーに置き換えて、gitバージョン管理などの利点を提供することを調査しています.
ただし、ドキュメント ( http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html ) は、Spring Boot クライアント アプリケーションについてのみ説明しているようです。既存の Web アプリで Spring Cloud Config Client をセットアップすることは可能ですか? Bootstrap の親アプリケーション コンテキストなどを手動で設定する必要がありますか? この例はありますか? 現在のスプリング構成は XML ベースです。
spring-boot - Spring Bootアプリケーション構成でSpring Cloud {cipher}を使用する方法はありますか?
Spring Cloud Config を使用する Spring Boot アプリがありますが、Spring Boot アプリの bootstrap.yml ファイルで Spring Cloud Config パスワードを暗号化したいです。これを行う方法はありますか?以下は例です。
Spring Boot アプリの bootstrap.yml
spring-cloud - 複数の eureka サーバーへの Spring クラウド eureka クライアント
eureka サーバーをピア ツー ピア モードで動作させることができます。しかし、私が興味を持っていることの 1 つは、サービス検出クライアントを複数の eureka サーバーに登録するにはどうすればよいかということです。
私の使用例は次のとおりです
。eureka サーバーの 1 つ (サーバー A など) に登録するサービスがあり、その登録がそのピアに複製されるとします。サービスは実際にはサーバー A を指しています。サーバー A がダウンし、クライアントがサーバー A で更新することを期待している場合、サーバー A が存在しなくなった場合、更新はどのように機能しますか。両方に登録する必要がありますか? そうでない場合、クライアントがサーバー A と通信できない場合、更新はどのように行われますか? (A との最初の通信および/またはその後の通信から) サーバー B についてある程度の知識があり、フェールオーバーして実行しますか?その登録更新がありますか?それはどのドキュメントでも明確ではなく、確認する必要があります
その答えに基づいて、application.ymlに以下を追加しました
コンマ区切りリストの最初にのみ登録されます。それらを切り替えると、eureka サーバー間で登録が反転します。
コンマに基づいてこれらを区切っていることがわかりますが、私の推測では、Eureka は下でこれを使用していません (EurekaClientConfigBean.java から)。
spring-cloud - Spring Cloud Feign クライアントは、異なるインスタンスの異なるコンテキスト ルートに接続しません
私は、Eureka を使用した Spring クラウドと、リボンを使用した Feign クライアントを評価している最中です。私が作成してきたサンプル アプリケーションには、クライアントを問題なく受信する Eureka Server があります。
ただし、FeignClient を使用する場合、RequestMapping にはコンテキスト パスを含める必要があります。
私の最初のケースでは、同じ VIP で ID が異なる 2 つのサービスがありました。- localhost:8080/ の 1 つのサービス - localhost:7400/HelloWorld の 1 つのサービス
異なるコンテキスト ルートの理由は、簡単に変更できない展開構造の可能性があるためです。
これは、クライアント内で構成する必要があるものですか? またはアプリケーションまたはこれは不可能ですか?
これが私の@FeignClientです
理想的には、RequestMapping は値「/」のみです。