1 Star 0 Fork 85

裴永余 / DeFiBus

forked from WeBank / DeFiBus 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
3-circuit-break-mechanism.md 1.72 KB
一键复制 编辑 原始数据 按行查看 历史
qqeasonchen 提交于 2019-10-31 10:11 . init repository

3.熔断

       DeFiBus基于队列来做消费端的负载均衡,对同一个消费组,除广播模式外,每个队列只由一个消费者实例消费。当一个实例处理能力下降或者异常出现消息堆积时,为了避免堆积情况继续加剧,DeFiBus会触发队列的熔断,此时生产者实例在感知到队列熔断之后,会优先把消息发送到其他没有熔断的队列上,暂停往熔断队列上写入新消息。当堆积消除后,熔断被解除,生产者恢复往该队列发送消息。

       DeFiBus对每个Topic定义了深度的属性,表示Topic的队列允许堆积的最大消息条数。消息堆积数表示队列中尚未下发给消费者实例的消息条数,可由队列中最新一条消息的offset与消费者实例已经获取到的消息的offset的差值计算。

offset

       当Consumer出现异常或者触发了流控,Consumer拉消息过程受阻,队列的DeliverOffset停止不前,新消息持续写入,MaxOffset不断变大,最终MaxOffset与DeliverOffset将超过Topic的最大深度限制,触发队列熔断。


Links:

Java
1
https://gitee.com/magic-codex/DeFiBus.git
git@gitee.com:magic-codex/DeFiBus.git
magic-codex
DeFiBus
DeFiBus
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891