注:本博客该系列作为学习kafka的概要记录,再在之后的学习或工作中实践,提高效率。
二.消费者
1.消费者 消费者组 主题 partition之间的关系
每个topic的每个partition只能被一个消费者组中的一个消费者消费。
2.消费者的分区策略
三种:roundrobin range stickyassignor.要点:三种策略具体怎么分区,优缺点,适用场景,对应配置partition.assignment.strategy,分配分区的过程
3.分区再平衡
什么情况下会触发再平衡?
答:消费者组订阅的topic新增分区;消费者组的消费者数量变化;
在平衡的过程?
答:和分区分配的过程相似。心跳,群组协调器,心跳频率,会话过期时间。
发生再平衡有哪些影响?
答:再均衡期间,消费者无法读取数据;当分区分配另一个消费者后,当前的消费状态可能会丢失,可能需要刷新缓存,在重新回复状态前降低效率。造成数据的重复消费(例如:poll方法有个参数,拉取批次数量,当处理一个批次再提交偏移量时,如果处理数据过程中生产者发生崩溃)
怎么避免再分配及降低再分配的影响?
答:开始时就创建合理的分区数量和生产者数量;监听器;控制心跳频率和会话过期时间,避免误判(发送心跳的时间:获取消息或者提交偏移量时;新版本引入一个心跳线程,可以在处理数据的过程中发送心跳)。
4.怎么写一个健壮的消费者应用程