Kafka 面试题 (施工中)

数据传输的语义有几种?如何实现?

  • 至多一次(At Most Once): ack = 0
  • 至少一次(At Least Once): ack=-1, replication>1,min.insync.replicas >= 2
  • 精确一次(Exactly once): 幂等性+至少一次

kafka 在什么情况下会出现消息丢失?

  • topic 的副本如果只有 1 个;
  • ack!=all;
  • 不清洁选举机制如果开启,也可能造成数据丢失(不清洁选举就是说在所有 ISR 副本全部宕机的情况下,可以让 OSR 副本成为 Leader,而 OSR 中的数据显然不全;那么,就算之前的Leader 重新上线了,也会被进行日志截断)

kafka 是如何实现高吞吐率的?如何再提高?

  • 消息顺序追加(磁盘顺序读写比内存的随机读写还快)
  • 页缓存等技术(数据交给操作系统的页缓存,并不真正刷入磁盘;而是定期刷入磁盘)
  • 使用 Zero-Copy (零拷贝)技术来进一步提升性能(将数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手);
  • 进一步提高:
    a) 增加分区个数
    b) 增加batch.size,减小linger.ms
    c) 设置数据压缩
    d) 增加recordaccumulator 缓冲区大小

请谈一谈 kafka 数据一致性原理

HW,leader epoch
详情见:
[https://blog.csdn.net/weixin_38643743/article/details/132184527]

kafka 的消息格式有了解吗?

谈谈 kafka 消费者组分区分配和再平衡策略

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值