Kafka面试题参考 Kafka 是一个分布式流处理平台,能够高效、可靠地处理大量的数据流。下面是 Kafka 面试题参考中的知识点: 1. Kafka topic 的分片保存算法 Kafka topic 的分片保存算法是将每个分片中的 partition 保存到 broker 中,以文件夹的形式保存到 broker。每个分区序号从 0 递增,且消息有序。Partition 文件下有多个 segment(xxx.index,xxx.log),segment 文件里的大小和配置文件大小一致,可以根据要求修改,默认为 1g。如果大小大于 1g 时,会滚动一个新的 segment,并且以上一个 segment 最后一条消息的偏移量命名。 2. partition 的数据如何保存到硬盘 Partition 的数据如何保存到硬盘是将 topic 中的多个 partition 以文件夹的形式保存到 broker,每个分区序号从 0 递增,且消息有序。Segment 文件里的大小和配置文件大小一致,可以根据要求修改,默认为 1g。如果大小大于 1g 时,会滚动一个新的 segment,并且以上一个 segment 最后一条消息的偏移量命名。 3. Kafka 的 ack 机制 Kafka 的 ack 机制有三个值:0、1、-1。其中,request.required.acks = 0 时,生产者不会等待 broker 的 ack,这个延迟最低,但是存储的保证最弱,当 server 挂掉的时候就会丢数据;request.required.acks = 1 时,服务端会等待 ack 值,leader 副本确认接收到消息后发送 ack,但如果 leader 挂掉后他不确保是否复制完成新 leader 也会导致数据丢失;request.required.acks = -1 时,服务端会等待所有的 follower 的副本受到数据后才会受到 leader 发出的 ack,这样数据不会丢失。 4. 消费者如何消费数据 消费者每次消费数据的时候,消费者都会记录消费的物理偏移量(offset)的位置,等到下次消费时,他会接着上次位置继续消费。 5. 消费者负载均衡策略 一个消费者组中的一个分片对应一个消费者成员,他能保证每个消费者成员都能访问,如果组中成员太多会有空闲的成员。 6. 数据有序 一个消费者组里它的内部是有序的,消费者组与消费者组之间是无序的。 7. 生产数据时数据的分组策略 生产者决定数据产生到集群的哪个 partition 中,每一条消息都是以(key,value)格式,Key 是由生产者发送数据传入,所以生产者(key)决定了数据产生到集群的哪个 partition。 8. Kafka 架构原理 Kafka 对消息的保存是根据 Topic 进行归类的,由消息生产者和消息消费者组成,在 Kafka 集群,生产者和消费者都依赖于 ZooKeeper 来保证数据的一致性。在每条消息输送到 Kafka 集群后,消息都会由 Topic 分开存储的。一个 Topic 为一个消息,每个 Topic 可以被分为多个 Partition,在每条消息中,它在文件中的位置称为 Offset,用于标记唯一一条消息。 9. Kafka 的高可用性 Kafka 还可以配置分区需要备份的个数,以便提高可用行。由于用到来 ZK 来协调,每个分区都有一个机器为 Leader 状态,服务对外响应(如读写操作),若该 Leader 挂掉后,会由其他的 Follower 来选举出新的 Leader 来保证集群的高可用性。
- 粉丝: 11
- 资源: 25
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机毕业设计:python+爬虫+cnki网站爬
- nyakumi-lewd-snack-3-4k_720p.7z.002
- 现在微信小程序能用的mqtt.min.js
- 基于MPC的非线性摆锤系统轨迹跟踪控制matlab仿真,包括程序中文注释,仿真操作步骤
- shell脚本入门-变量、字符串, Shell脚本中变量与字符串的基础操作教程
- 基于MATLAB的ITS信道模型数值模拟仿真,包括程序中文注释,仿真操作步骤
- 基于Java、JavaScript、CSS的电子产品商城设计与实现源码
- 基于Vue 2的zjc项目设计源码,适用于赶项目需求
- 基于跨语言统一的C++头文件设计源码开发方案
- 基于MindSpore 1.3的T-GCNTemporal Graph Convolutional Network设计源码