Kafka consumer 端设计 cousumer group 状态机

consumer依赖broker端的组协调者coordinator来管理组内所有的sonsumer实例 并负责把分配方案下发到每个consumer上,分配方案是由组内的leader sonsumer来根据指定的分配策略来决定的。该分配策略必须是组内所有consumer都支持的。如果所有sonsumer在一起无法选择共同的策略 那么将抛出异常。这种设计确保了consumer group的一致性。同时可以保证每个consumer只能为它拥有的分区提交位移。

 

在sonsumer端实现的好处:

1。便于维护和升级。如果在broker端 那么分配从策略变动 需要重启kafka集群,生产环境重启服务区代价很高昂。

2。便于实现自定义策略,不同的策略有不同的逻辑实现。

3。解耦了组管理和分区分配,coordinator负责组管理,而consumer 程序负责分区分配

 

下图为kafka consumer group的五个状态转换以及生命周期

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值