問題タブ [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.
java - spring-boot EurekaInstanceConfigBean をオーバーライドする
eureka に登録する Docker 化されたスプリング クラウド ベースのマイクロサービスを構築しています。登録プロセスの一部として、コンテナーにマップされたポートをホストに要求することで、docker がコンテナー化されたサービス用の空きホスト ポートを選択できるようにします。
Docker化されたサービスがポートマッピングを要求できるホストベースのサービスがあり、現在、外部ポートを使用してマイクロサービスを eureka に登録しようとしています。
マイクロサービス内で適切なポートを取得しましたが、EurekaInstanceConfig
.
私が試したこと:
カスタムEurekaInstanceConfigBean
は作成されますが、構成は取得されません (サービスは内部コンテナー ポートに登録されます)。
問題は次のとおりEurekaInstanceConfigBean
です。
編集 (2):
スティーブが指摘したように、現在 spring-cloud-1.0.0.RELEASE が利用可能になっているため、以前のソリューションのほとんどは廃止されています。誰かが同様のことを試みている場合に備えて、最終的な解決策を添付しました。
spring-data-rest - Spring Data Rest API を使用した Spring クラウド zuul プロキシ マッピング
Angular JS と Spring Securityに関する記事に従って、Angularjs の Spring Data Rest とクライアント アプリに基づく API を用意しました。API はコンテキスト "some-api" でホストされ、クライアント アプリはルート コンテキストでホストされます。クライアント アプリの Zuul プロキシ設定は次のようになります。すべてが順調ですが、クライアント アプリと API の間のプロキシ構成が期待どおりに機能していません。クライアント /api からの応答には、API 呼び出しを中断する「some-api」サブ コンテキストが含まれています。
ズール構成:
API アプリ:
クライアント アプリ:
spring-cloud - configserver.yml が Spring Cloud 構成サーバー /env リソース出力に表示されないようにするにはどうすればよいですか?
Spring Boot プロジェクトを定義し、pom に次の依存関係を含めることができました。
次に、クラスに @EnableConfigServer アノテーションを追加しました。ここまでは順調ですね。次に、自分の git リポジトリを指すように bootstrap.yml ファイルを作成しました。アプリケーションが実行され、リポジトリで定義した構成ファイルが取得されます。すべてうまくいくようです。ここまでたどり着くまでには、試行錯誤と掘り下げの繰り返しがありました。
http://localhost:8888/envを呼び出すと、2 つの applicationConfig JSON オブジェクトが表示されます。1 つ目は configserver.yml ファイルからのもので、基本の spring コンテキストに貢献する spring-cloud-config-server jar に埋め込まれています。2 番目は、bootstrap.yml からのものです。
bootstrap.yml で構成されているように、git リポジトリからプロパティ ファイルにアクセスできます。server.port 値など、configserver.yml に表示される他のプロパティをオーバーライドする方法を考えています。この質問が既に出されていたら申し訳ありません。spring-cloud-config-server jar をそのまま、変更せず、コードを引っ張って再構築することなく操作しようとしています。
java - Spring-cloud-aws フレームワークで SNS レシーバーを正しく実装するには? (つまり、@NotificationMessageMapping)
現在、Spring 4.1.4 を使用して STS 3.6.3SR1 を使用しています。アプリケーション内での使用の実現可能性について spring-cloud-aws をテストしようとしています。
質問に関連する瓶:
spring-cloud-aws-autoconfigure-1.0.0.RC2.jar
spring-cloud-aws-context-1.0.0.RC2.jar
spring-cloud-aws-core-1.0.0.RC2.jar
spring-cloud-aws-messaging-1.0.0.RC2.jar
aws-sdk-1.9.3 の使用
現在、これは私のxmlコンテキストファイルにあります。
現在、この Controller クラスをエンドポイントとして定義しています。
上記のクラスでは、SnsHelper がNotificationStatusを実装しており、サブスクリプションが適切に確認されています。handleNotificationMessage メソッドへの通知も受信しています。ただし、送信内容に関係なく、両方の文字列が null と評価されます。
これは、notificationResolverが正しく登録/適用されていないことに関係していると思います。
誰でもこれに関するガイダンスを提供できますか?
ご協力ありがとうございました。
spring-cloud - 春の雲にエウレカを確保
eureka に接続するサービス (登録してディスコ情報を取得する) を保護するためのオプションについて知りたいです。明らかに、Eureka でセキュリティを有効にして、サービスのユーザー名とパスワードを指定したいと考えています。
私が持っている 1 つの質問は、eureka に接続しようとするサービスが資格情報をどのように指定するかということです。それはゾーンの仕様によるものですか?この参照の形式は何ですか?
*** 私は実際に上記の質問に対する回答を下に投稿しましたが、それでも次のことについて疑問に思っています
また、より強力なセキュリティ メカニズムを指定できますか。指定できる場合、どの方法で指定できますか?
java - spring-cloud を netflix Eureka と一緒に使用する場合、Discovery Client を機能させるにはどうすればよいですか?
これがどのように機能するかを学ぶために、Hystrix、Eureka、Ribbon などの netflix アドオンを使用して、Spring Cloud を使用して基本的なプロジェクトを作成しようとしています。私が作成しようとしているプロジェクトは、メッセージを保持する単純なメッセージ サーバーです。そして、サーバーにメッセージを要求するだけのメッセージクライアントです。これには自動検出クライアント、または RestTemplate 検出を使用したいと考えています。しかし、私はどちらも機能させることができません。
私は次の構造を持っています:
- メッセージクライアント (eureka クライアント)
- メッセージサーバー (eureka クライアント)
- 構成サービス (構成サーバー)
- 発見サービス (eureka サーバー)
私が現在行っていることは、構成サービスを起動し、次の構造で接続しているときに、これらすべての「アプリ/クライアント」に application.yml の詳細を公開することです。
- config-service\src\main\resources\config\appname.yml
- app\src\main\resources\bootstrap.yml (アプリ名とクラウド構成への URL が含まれています)
これは問題なく動作しており、私のアプリは構成サーバーから受け取ったポートで起動し、すべてが私の eureka サーバーに接続され、そこにすべてが表示されます。Hystrix フェールオーバーも機能しているだけでなく、これに関連しているわけではありませんが、完全に間違っているとは言えません。
しかし、ここで混乱が生じます... クライアントモジュール内のサービスクラス (@Service アノテーション付き) で @Autowired アノテーションを使用すると、discoveryClient オブジェクトを取得できますが、それを使用する他のサービスを見つけることができません。
メッセージ クライアント - ブート クラス:
メッセージ クライアント - REST リソース:
メッセージ クライアント - MessageClient:
メッセージを保持しているメッセージ サーバーのブート クラスには、クライアントのものと同じ注釈があります。
そして、私が言ったように、私のサービスクラスは何も見つけることができません..それは私のすべての質問に私を導きます:
- リボン ロード バランサーを実際に使用するには何が必要ですか?
- 「自動検出」を使用できるようにするには、リボンを使用する必要がありますか? そうではないと思っていましたが、今は混乱しています。
- 私が理解したことから、EnableEurekaClient を使用する場合、EnableDiscoveryClient も使用する必要はありませんか?
- 実行時にクライアントの config-server の yml ファイルを変更して、クライアントを再起動するだけでよいですか?
- 現在、すべてのクライアントには非常に基本的なbootstrap.ymlファイルが含まれているだけなので、構成サーバーによって実際に共有される構成の量。
- 私のymlファイルに設定されているすべてのプロパティについてもっと読むことができる場所への良いリンクを誰かが持っていますか? 存在するプロパティが実際に何をするかのドキュメントと、それらをスプリングクラウドと組み合わせて使用する方法に関するドキュメントの両方?
- アプリ/クライアントが他のアプリ/クライアントを見つけられるようにするには、特定のプロパティが必要ですか?
編集情報
迅速で優れた返信をありがとう、今日何度も何度もこれを経験し、ついにアプリケーションが機能するようになりました..検出サービスには、ポートや eureka 情報などを指定する他の各クライアントの yml ファイルが含まれています。ここで指定したものも次のとおりです。
そのため、この値を設定すると、サービス ディスカバリが機能しない原因となるものを上書きしているように見えます。eureka サーバーですべてのアプリケーションを確認できても、この値を設定すると、お互いを見つけることができませんでした。
この値を設定するには、構成サービスに message-server.yml ファイルを作成し、ブートストラップ後にメッセージ サーバー アプリケーションに送信します。
それでは、2 つの新しい質問があります。
- この eureka サーバー プロパティをオーバーライドするにはどうすればよいですか?
- この値を設定するとディスカバリ クライアントが動作しなくなるのはなぜですか? 実際には何をしているのですか?
spring-cloud - Eureka コンテキストの再マッピング
eureka は、「http://localhost:8761/ 」のように「/」で情報を提供します。
このコンテキストを変更する簡単な方法はありますか? たとえば、代わりに「http://localhost:8762/services」を使用したいとしますか?