【发布时间】:2019-05-04 07:46:06
【问题描述】:
我们有一个 JMS 监听器,它从 MQ 中提取消息并将它们保存在数据库中。我的问题是在数据库关闭时暂时暂停 JMS 侦听器并在一段时间后再次恢复它的最佳方法是什么。
我的想法是在 db 操作周围使用 Spring Circuit Breaker 来监控其运行状况并回退到错误处理程序方法。这将有助于避免每次都等待数据库超时。但是,监听器仍在拉取消息并尝试保存它们,这会浪费 CPU 和网络。
有没有办法处理断路器命令事件,例如:开/半开/关?然后我可以在电路开路事件发生时将代码编写到stop JMS,并在电路半开事件发生时start JMS。
或者当依赖项失败时临时暂停 JMS 侦听器的最佳做法是什么?
注意:我们正在为侦听器使用 Spring Integration 消息驱动通道适配器。
【问题讨论】:
标签: spring spring-integration spring-jms hystrix circuit-breaker