kafka常见面试题总结

Kafka 核心知识解析

一、Kafka 消息发送流程

Kafka 发送消息涉及两个线程:main 线程和 sender 线程。在 main 线程中,会创建一个双端队列 RecordAccumulator,main 线程负责将消息发送给 RecordAccumulator,而 sender 线程则从 RecordAccumulator 中拉取消息并发送到 Kafka Broker。

二、Kafka 分区的目的

  1. 合理使用存储资源与负载均衡
    分区会分布在不同 broker 上,通过将海量数据分区存储在各个 broker,可以实现负载均衡的效果,以此达到合理使用存储资源的目的。
  2. 提高并行度
    生产者能够以分区为单位发送消息,消费者也以分区为单位消费数据,这样大大提高了并行度。

三、Kafka 消息的有序性保障

  1. 生产者端
    最简单的方式是设置一个分区,因为 Kafka 在同一个分区内传递消息是有序的。或者可以选择同步式发送模式,不过这种模式效率较低。
  2. 消费者端
    可以设置单个消费者单个分区,以此确保消息的有序性。

四、ISR、OSR、AR 概念

ISR 是 Kafka 集群中还存活的副本,OSR 是在规定时间内没有做出响应被认为已经挂掉的副本,AR 包含 ISR 和 OSR。

五、Kafka 消息丢失情况及应对

  1. 生产者端消息丢失
    如果 acks 设置不当很可能导致消息丢失,acks 有三种配置级别,最高级别是 -1 或者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值