CircuitBreakerEvent
熔断事件,有以下几种场景
enum Type {
/** 请求失败,且不是可被忽略异常,失败次数+1时发布 */
ERROR(false),
/** 请求失败,但是是可被忽略异常,失败次数+1时发布 */
IGNORED_ERROR(false),
/** 请求成功时发布 */
SUCCESS(false),
/** 熔断打开,请求不允许被调用时发布*/
NOT_PERMITTED(false),
/** 熔断状态发生变化时发布 */
STATE_TRANSITION(true),
/** 熔断被重置时发布 */
RESET(true),
/** 熔断被强制开启时发布 */
FORCED_OPEN(false),
/** 熔断被强制停止工作时发布 */
DISABLED(false);
public final boolean forcePublish;//表示是否强制发布事件
}
CircuitBreaker向订阅的任何订阅者/消费者发布CircuitBreakerEvents流。
消费或订阅方式
- 注册EventConsumer
circuitBreaker.getEventPublisher()
.onSuccess(event -> logger.info(...))
.onError(event -> logger.info(...))
.onIgnoredE
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: