Kafka精选面试题

1. 如何保证幂等性?

幂等性其实是消息的一致性, 生产和消费都只有一次, 所以分为生产者幂等性和消费者幂等性.

实际开发过程中, 一般只会保证消费幂等性, 所以面试时直接回答消费幂等就行
做法就是做唯一id, 在消费端做个判断,如果唯一id已存在则不做消费处理, 这个唯一id一般会借用数据库的唯一性

2. kafka为什么这么快?

一、磁盘顺序读写
二、Page Cache

Kafka利用了操作系统本身的Page Cache,就是利用操作系统自身的内存而不是JVM空间内存
三、零拷贝
四、分区分段+索引

Kafka的message是按topic分类存储的,topic中的数据又是按照一个一个的partition即分区存储到不同broker节点。每个partition对应了操作系统上的一个文件夹,partition实际上又是按照segment分段存储的。这也非常符合分布式系统分区分桶的设计思想。
五、批量读写
六、批量压缩

相关推荐
lqstyle5 分钟前
面试必备之mysql索引
后端·mysql·面试
35的调包侠8 分钟前
Kafka基础
面试
一个热爱生活的普通人9 分钟前
gin 路由详解:动态参数、分组与 RESTful 设计
后端·面试·gin
飘尘35 分钟前
面试官:如何实现大量任务执行的调度?
前端·javascript·面试
前端大雄40 分钟前
前端面试之各大厂真题算法解析
前端·javascript·面试
只会写Bug的程序员1 小时前
面试之《TypeScript泛型》
前端·面试·typescript
秋天的一阵风1 小时前
‌ES Module 都过十岁生日了,你还不了解它的运行原理吗?
前端·javascript·面试
不爱学习的小枫1 小时前
spark常见的submit参数
大数据·分布式·spark
Moment2 小时前
前端白屏检测SDK:从方案设计到原理实现的全方位讲解 ☺️☺️☺️
前端·javascript·面试
束尘2 小时前
React面试(二)
javascript·react.js·面试