初期設定以下の特性:Spring Cloud Steam Binder SPIレジリエンスの方法は? application.propertiesから
spring.cloud.stream.defaultBinder:XXXXX spring.cloud.stream.binders.XXXXX.type:ウサギ spring.cloud.stream.binders.XXXXX.environment .spring.rabbitmq.addresses: spring.cloud.stream.binders.XXXXX.environment.spring.rabbitmq.username:ppp spring.cloud.stream.binders.XXXXX.environment.spring.rabbitmq.password:qqqq spring。 cloud.stream.binders.XXXXX.environment.spring.rabbitmq.virtual-host:/ com/llll/ccc
後で私はspring.cloud.stream.binders.Xを変更したいと思いますサーバーを停止せずにXXXX.environment.spring.rabbitmq.addresses。私は次のようにしてみました:
@Autowired
private EnvironmentManager poEnvironmentManager = null;
and the in the method
poEnvironmentManager.setProperty("spring.cloud.stream.binders.XXXXX.environment.spring.rabbitmq.addresses", ".......");
これは機能しませんでした。あなたに解決策があるかどうか教えてください。
はい、実行時にターゲットブローカを切り替えます。 @RefreshScopeを使用してDB接続ファクトリでも同様のことができます。工場を再作成します。他のビーンリフレッシュに触れずにバインダーSPIをリフレッシュする方法は? – user7915099
私はそれが可能ではないと思うし、それは良いアイデアだとは思わない。ブローカーが途中で飛行機を変えた場合に起こる多くの調整があります。まだ処理されていないメッセージ、再試行中のメッセージ、これで間違ってしまうことが多すぎます。あなたのアプリケーションが別のブローカーを指すようにする必要がある場合は、青緑の配備で新しいものを開始し、新しいブローカーをポイントし、古いものを使い切ってから終了します。 –
メッセージの耐久性が要求されないメッセージバスインフラストラクチャを作成しています。このバスは特定の目的に使用されます。基本的には、問題が発生したときに別のDRセットアップに移行することができます。 – user7915099