最初配置以下從application.properties屬性:如何做Spring Cloud Steam Binder SPI韌性?
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 春天。 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爲數據庫連接工廠實現類似的功能。它重新創建工廠。如何在不觸及其他bean刷新的情況下刷新binder SPI? – user7915099
我不認爲這是可能的,我也不認爲這是一個好主意。如果經紀人在中途轉機,將會發生很多協調。仍然沒有處理的郵件,重試的郵件,有太多可能會出錯的信息。如果您需要將您的應用指向其他經紀商,只需使用藍綠色部署,啓動一個新的代理,指向新代理,用盡舊代理,然後終止它。 –
我們正在創建一個消息總線基礎結構,其中不需要消息持久化。這輛巴士將用於特定目的。基本上,我們可以在發生時轉移到另一個DR設置。 – user7915099