1

ドキュメントによると、Spring クラウド構成サーバーが構成の変更を検出すると、RefreshRemoteApplicationEventが発生します。しかし、ドキュメントには、そのイベントがどのように処理されるかについては何も記載されていません。そのようなイベントを受け取った各アプリケーションは、それを単独で処理する必要があるというのは本当ですか? たとえば、そのようなイベントが受信されたときに Spring コンテキスト全体を更新する必要はありませんか?

4

1 に答える 1

2

ドキュメンテーションはサーバー側、つまり、git リポジトリーと対話し、要約された情報を関心のあるクライアントに公開する Spring アプリケーションについてのみ述べていると思います。このプロセスでは、たとえば Webhook を使用して、サーバーに git リポジトリの変更を通知し、再構成が必要なアプリケーションにイベントを送信できます。

あなたの質問はクライアント側に関係しているようです。アプリケーションが Spring Cloud Config を使用している場合、上記のイベントがクライアントに到着するとすぐに、新しい構成データを自動的に要求する必要があります。これは、新しい構成値が利用可能であるか、構成された動作 (ログ レベル?) が変更されたことを意味するはずです。

クライアントに到着するイベントを実際にサーバーに発生させるには、ドキュメントで Spring Cloud Bus が提案されています。たとえば、RabbitMQ インスタンスを作成し、これをクライアントとサーバーの両方で使用できるようにすると、Spring は自動的にこのシステムにアタッチされ、メッセージを処理できるようになります。さらに、Spring Cloud Config サーバーは、このシステムを使用して目的のイベントを自動的に送信し、クライアントはこれらを自動的に処理します。

要するに、関連するすべてのアプリケーションに Spring Cloud Bus を追加すると (そして、Spring Cloud Bus が使用するシステム (RabbitMQ など) を使用できるようにすると)、すべてが期待どおりに機能します。

于 2016-08-17T13:21:26.077 に答える