kafka夺命连环三十问(16-22)

16、kafka是如何做到高效读写

1,kafka本身是分布式集群,可以采用分区技术,并行度高

2,读数据采用稀疏索引,可以快速定位要消费的数据

3,顺写磁盘

4,页缓存+零拷贝技术

17、Kafka集群中数据的存储是按照什么方式存储的?

Kafka使用自己的文件存储系统来存储消息。每个分区的数据被存储在一系列文件中,这些文件被称为segment。每个segment包含一个.log文件和一个.index文件。.log文件存储消息的二进制数据,而.index文件存储消息的索引信息,用于快速定位消息。

18、kafka中是如何快速定位到一个offset的。

在kafka中要快速定位一个offset主要依赖于其稀疏索引机制,当需要读取特定offset的数据时,先通过稀疏索引确定数据所在的segment范围,然后在该segment内进一步查找

19、简述kafka中的数据清理策略。

1,基于时间的数据清理

2,基于大小的数据清理

3,日志清理策略

kafka提供了两种日志清理策略:delete和compact

一种是基于时间的,另外一种是基于大小

1,delete它会删除所有过期的数据,如果segment中既有过期数据也有未过期数据,kafka会保留未过期的数据,删除过期的部分,这样可以保证数据的完整性

2,compact 日志压缩(合并的意思,不是真的压缩)

compact日志压缩:对于相同key的不同value值,只保留最后一个版本。

4,日志清理的触发

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

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

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

groupld对五十取模,看最后结果是哪个分区节点,假如是1分区,那么1分区的协调器就是本次消费者组的老大,消费者向该协调器注册,协调器从中随机选择一个消费者作为本次消费的leader,然后让leader制作计划,哪个消费者消费哪个分区

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

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

默认情况下,Kafka使用的分区分配策略是RangeAssignor,即范围分配策略。

相关推荐
ZStack开发者社区2 分钟前
替代VMware vSAN | 五大角度解析ZStack分布式存储替代优势
分布式·云计算
R-sz25 分钟前
使用Redisson实现同一业务类型串行执行的分布式锁方案,解决并发问题
分布式
哈哈哈笑什么5 小时前
蜜雪冰城1分钱奶茶秒杀活动下,使用分片锁替代分布式锁去做秒杀系统
redis·分布式·后端
哈哈哈笑什么6 小时前
高并发分布式Springcloud系统下,使用RabbitMQ实现订单支付完整闭环的实现方案(反向撤销+重试+补偿)
分布式·spring cloud·rabbitmq
哈哈哈笑什么7 小时前
分布式高并发Springcloud系统下的数据图同步断点续传方案【订单/商品/用户等】
分布式·后端·spring cloud
LDG_AGI7 小时前
【推荐系统】深度学习训练框架(十三):模型输入——《特征索引》与《特征向量》的边界
人工智能·pytorch·分布式·深度学习·算法·机器学习
回家路上绕了弯8 小时前
多线程开发最佳实践:从安全到高效的进阶指南
分布式·后端
少许极端8 小时前
Redis入门指南:从零到分布式缓存(一)
redis·分布式·缓存·微服务
爬山算法9 小时前
Redis(161)如何使用Redis实现分布式锁?
数据库·redis·分布式
边缘计算社区9 小时前
云边协同推理再突破:新型分布式解码框架吞吐量提升近 10%
分布式