resilience4j(七):核心模块CircuitBreaker源码之CircuitBreakerEvents

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

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: