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

本文深入探讨Resilience4j的CircuitBreakerEvent,介绍熔断事件的各类场景,包括CircuitBreaker如何向订阅者发布事件。同时,讲解了事件的消费与订阅方式,如通过注册CircularEventConsumer和使用RxJava2。文章还分析了源码中决定事件发布的条件,即根据EventType和CircuitBreaker状态配置,以及是否存在消费者。最后,讨论了事件的消费过程,重点在于CircuitBreakerEventProcessor和EventProcessor的处理流程。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值