ここに私のシナリオがあります: 私のマイクロサービスは、そのコンフィグレーションの変更について中央のconfサーバから通知されます。部分的な更新または完全な更新が可能です。 関連する豆に@RefreshScopeマークを使用します。問題はマークされた豆を更新する方法です、私はそれらをリロードすることを意味します。 明確にする:Spring Cloudから、私はRefreshScopeのみを使用します。RefreshScopeとしてマークされたBeanを更新する
アイデア?
ここに私のシナリオがあります: 私のマイクロサービスは、そのコンフィグレーションの変更について中央のconfサーバから通知されます。部分的な更新または完全な更新が可能です。 関連する豆に@RefreshScopeマークを使用します。問題はマークされた豆を更新する方法です、私はそれらをリロードすることを意味します。 明確にする:Spring Cloudから、私はRefreshScopeのみを使用します。RefreshScopeとしてマークされたBeanを更新する
アイデア?
org.springframework.boot:spring-boot-starter-actuator
を追加します。refresh
エンドポイントで設定を更新しています。たとえば、以下のように管理エンドポイントを設定します。 curl -X POST http://localhost:8001/manage/refresh
は、変更された設定をリフレッシュするようトリガーします。
management: context-path: /manage port: 8001 security.enabled: false
あなたが変更の影響を受けるさまざまなコンポーネントを持っている場合、それはリポジトリに自分の設定を維持するために良いことだと、あなたは、すべての影響を受けるコンポーネントがにされたさわやかな状況のためのパブリッシュ・サブスクライブ・モデルを追加することができます設定が変更された結果、リポジトリから発行されたイベントを購読します。
とさわやかな文脈のために、我々は2つのオプションがあります。
両方の解決策では、関心のある豆を@RefreshScopeでマークします。
ありがとうございました。しかし、私の問題は解決しません。私のアプリケーションが変更されたパラメータを取得し、今から関連するすべての場所でそれらを更新する必要があるため、私の設定が "リポジトリ"にある場合は更新されます。最初にenvを更新する必要がありますか? – Oleg