Kafka精选面试题

1. 如何保证幂等性?

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

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

2. kafka为什么这么快?

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

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

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

相关推荐
武子康28 分钟前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
PAK向日葵1 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
itLaity6 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
qq_529835356 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
smileNicky7 小时前
RabbitMQ有多少种Exchange?
分布式·rabbitmq
你我约定有三7 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
倔强青铜三7 小时前
为什么 self 与 super() 成了 Python 的永恒痛点?
人工智能·python·面试
Java初学者小白7 小时前
秋招Day19 - 分布式 - 分布式事务
java·分布式
刚入坑的新人编程8 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
程序员小羊!9 小时前
Zookeeper 3.6.3【详细技术讲解】整
分布式·zookeeper·云原生