面试题_kafka
1. kafka介绍 (1).工作原理 首先 Producer 产生 Record 发送给指定的 Kafka Topic(Topic实质是有多个分区构成,每一个分区都会相应的复制分区) ,在真正存放到Kafka集群时会进行计算 key.hashCode%topicPartitionNums 等于要存放的分区序号。 Leader 分区中的数据会自动同步到 Follower 分区中, ZooKeeper 会实时监控服务健康信息,一旦发生故障,会立即进行故障转移操作(将一个Follower复制分区自动升级为Leader主分区) Kafka一个分区实际上是一个有序的Record的 Queue (符合队列的数据结构,先进先出), 分区中新增的数据,会添加到队列的末尾,在处理时,会从队列的头部开始消费数据。 Queue 在标识读写操作位置时,会使用一个 offset (读的offset <= 写的offset) 最后 Consumer 会订阅一个Kafka Topic,一旦Topic中有新的数据产生,Conumser立即拉取最新的记录,进行相应的业务处理。 2.Kafka与传统消息队列的区别? 3.Kafka如何保证高性能读写 √ 写入性能:分区、磁盘顺序写入、Memory Map File(内核空间内存) 写出性能:分区、Zero Copy 总的来说Kafka快的原因: 1