2

Spring Cloud AWSを使用する Spring Boot アプリを作成しています。Spring Cloud AWS Bean を組み込み始めるとすぐに、Spring アプリケーション コンテキストの読み込みが大幅に遅くなることに気付きました。以前はコンテキストが数秒で開始されていましたが、現在は 3 ~ 5 分かかります。

getProperty()スローダウンの 1 つを のメソッドに追跡しましたAmazonEc2InstanceDataPropertySource。これは、リンクローカル IP アドレス (169.254.169.254) へのアクセスを数回試行します。これは、Amazon のネットワーク内でアプリケーションを実行している場合はアクセスできますが、外部からはアクセスできません。Amazon のネットワークの外で実行している場合、コードはすべての接続試行が失敗するのを待つだけのようですが、これはソケットが最終的にタイムアウトしたときに発生していると思いますか?

私が最初に考えたのは、このタイムアウトは構成可能であるかもしれない、またはローカルで実行しているときにこれが起こらないようにプロファイルを構成できるかもしれないということでしたが、ドキュメントには何も見つかりません ( http://cloud.spring. io/spring-cloud-aws/spring-cloud-aws.html ) には、これについてまったく言及されていません。

ここでの知恵に感謝します、ありがとう!

4

2 に答える 2

2

同様の問題を参照してください https://github.com/aws/aws-sdk-java/issues/450

私のローカル環境 (Windows 7) では、唯一の方法はリンクローカル アドレス 169.254.169.254 でファイアウォールを定義することです (フェイル ファスト)。私のwindows7が同じアプリでMac/win8とは異なる(非常に遅い)動作をする具体的な理由は見つかりませんでした。

とにかく、ローカル開発環境 (EC2 の外部) で作業する場合、ec2-instance-metadata との通信を無効にするグローバル フラグは見つかりませんでした。

cloud.aws.stack.auto=false は少し役に立ちますが、十分ではなかったので、ファイアウォールを設定しました

于 2015-08-04T08:35:57.943 に答える