CircuitBreaker CLOSED通知

时间:2017-10-09 11:05:28

标签: java apache-camel

我有一个从队列from("jms:xx")读取的路线。在路线上我称之为外部网络服务。我还配置了CircuitBreaker以防万一webservice暂时不可用。 当CircuitBreaker打开时,所有新的传入请求都被阻止(状态为OPEN)。

让我感到困惑的是:如果出现错误,则需要将消息放回队列,最好是延迟(感谢重新传递策略)。 我假设CircuitBreaker没有与messagelistener联系,所以即使CircuitBreaker是OPEN,它仍然会定期从输入队列接收所有消息。

为了减少这种开销,我想: 抛出RejectedExecutionException时,将所有传入消息移动到DLQ。一旦解决了连接问题(状态再次变为CLOSED),所有这些消息(标头过滤器)都可以再次移动到处理队列。 我知道我在这里有风险:它只会在新邮件到达时重试。

我的问题:当状态从HALF_OPEN变为CLOSED(f.e。onClosed)时,是否有可能获得通知?

0 个答案:

没有答案