Kafka高频面试题-持续更新

1.kafka怎么避免重复消费?

答:利用两阶段事务提交或者容器去重(Hash Set、布隆过滤器、Redis)

2.Kafka怎么保证顺序消费?

答:kafka是全有无序,区间有序,如果要保证消费者顺序消费只能有一个分区,或发送时指定分区发送,消费时指定消费分区

3.Kafka分区有什么用?

答:分区可以提高读写效率、方便集群扩容、方便消费者负载均衡

4.消费者如何保证数据不丢失?

答:先进行消费后提交

5.消费者group订阅了一个topic,当topic接受到消息时,消费者group上的所有消费者能接受到消息吗?

答:一条消息同一时刻只能被同一个消费者组内的一个消费者所消费,也可以被其他消费者组再次消费

6.kafka如何保证数据不丢失?

答:1) 生产者如何保证消息不丢失?--ack设置为all或者-1表示需要leader+follower确认才认为写入成功

    2)消费者如何保证消息不丢失?---先消费后提交

    3)kafka本身如何保证?---副本机制

7.kafka为什么那么快?

答:    1)架构层面--分布式的!多个人干活比一个人块!--如何体现?---不同分区放到不同机器

        2)硬件层面--顺序写SequenceIO,追加写

        3)读写模式层面--写是推模式,读是拉模式

        4)读细节:使用二分查找index中对应的offset数据在.log中的位置

        5)扩展:内核层面--零拷贝机制+PageCache(下面两个网站讲解零拷贝机制+PageCache)

            https://www.cnblogs.com/lsgxeva/p/11619464.html

           https://blog.csdn.net/pizi0475/article/details/49493841

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容