Kafka高频面试题详解(consumer端)

1、消费者组和分区数之间的关系是怎样的?

消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费

消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者

2、kafka如何知道哪个消费者消费哪个分区?

生产者把数据发送给各个分区,每个broker都有一个coordinator(协调器),消费者组对分区进行消费

GroupId对50取模,看最后的结果是哪个分区节点,假如是partition1,那么一分区的coordinator就是老大,消费者组中的消费者纷纷向coordinator发送JOinGroup请求,coordinator从中随机选一个consumer作为本次消费的Leader,coordinator把本次的消费情况发给Leader,让Leader制定一个消费计划(哪个consumer消费哪个partition)并发给coordinator,协调器再进行群发并公布给各个consumer,各个consumer按照这个计划进行消费

3、kafka消费者的消费分区策略有哪些,默认是个?

Kafka有四种主流的分区分配策略: Range、RoundRobin(轮询)、Sticky(粘性)、CooperativeSticky(配合的粘性)

可以通过配置参数partition.assignment.strategy,修改分区的分配策略。默认策略是Range + CooperativeSticky。Kafka可以同时使用多个分区分配策略。

3.1 Range分区策略原理

3.2 RoundRobin 分区策略原理

7.3 Sticky 分区策略原理

**粘性分区定义:**可以理解为分配的结果带有"粘性的"。即在执行一次新的分配之前, 考虑上一次分配的结果,尽量少的调整分配的变动,可以节省大量的开销。 粘性分区是 Kafka 从 0.11.x 版本开始引入这种分配策略,首先会尽量均衡的放置分区 到消费者上面,在出现同一消费者组内消费者出现问题的时候,会尽量保持原有分配的分区不变化
使用粘性分区会按照上一次的分区方法进行分区

7.4 CooperativeSticky

在消费过程中,会根据消费的偏移量情况进行重新再平衡,也就是粘性分区,运行过程中还会根据消费的实际情况重新分配消费者,直到平衡为止。

好处是:负载均衡,不好的地方是:多次平衡浪费性能。

动态平衡,在消费过程中,实施再平衡,而不是定下来,等某个消费者退出再平衡。

相关推荐
ZCBUS实时计算9 小时前
信创混合存储架构落地实战|基于 ZCBUS 实时计算构建证券高可用实时风控数仓
大数据·架构·flink·kafka·dba
Sayai17 小时前
Kafka 去 ZooKeeper 实战评估:KRaft 模式架构解析与生产落地决策指南
zookeeper·架构·kafka
StarRocks_labs19 小时前
StarRocks x Fluss x Paimon 湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
starrocks·kafka·lambda·查询·paimon·fluss·湖流一体
数智启示录2 天前
实时数据湖 flink CDC + Kafka +Doris 【企业级实战】Checkpoint、Offset、事务与幂等如何闭环 06
大数据·flink·kafka
数智启示录2 天前
实时数据湖 Flink CDC + Kafka +Doris 【企业级实战】之Kafka 事件缓冲层 【附核心源码】 04
java·大数据·flink·kafka·数据库开发
数智启示录2 天前
实时数据湖 flink CDC + Kafka +Doris 【企业级实战】性能调优与生产运维闭环 09
运维·flink·kafka
树下水月2 天前
python3 使用canal监听后,kafka数据同步从mysql到clickhouse数据库 完整复盘
数据库·mysql·kafka
jj_ccwgw3 天前
Kafka 集群开机自启动配置指南
后端·kafka
JackSparrow4143 天前
Kafka(七)集成Apache Avro+Apicurio Schema Registry以保障生产者与消费者的消息兼容性
java·中间件·rpc·kafka·apache·avro·schema-registry
阿里云云原生3 天前
企业级实时数据平台建设:利用存算分离 Kafka 实现低成本、高可靠入湖
分布式·阿里云·云原生·kafka