Kafka面试专题 消息中间件
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Kafka 面试专题 消息中间件 Kafka 是一种高性能、可扩展、可靠的消息中间件,常用于大数据处理、实时数据处理和日志聚合等场景。下面是 Kafka 的一些核心概念和设计理念: Kafka 架构 Kafka 的架构可以分为三部分:Producer、Broker 和 Consumer。Producer 负责将消息发送到 Kafka 集群,Broker 负责存储和管理消息,而 Consumer 负责从 Kafka 集群消费消息。 Producer Producer 是将消息发送到 Kafka 集群的程序。Producer 将消息以 Topic 为单位进行归纳,并将消息发送到 Kafka 集群。Kafka 集群可以由一个或多个 Broker 组成,每个 Broker 都可以独立地处理消息。 Broker Broker 是 Kafka 集群的核心组件,负责存储和管理消息。每个 Broker 都可以独立地处理消息,并且可以与 ZooKeeper 进行通信以维持集群的状态。 Consumer Consumer 是从 Kafka 集群消费消息的程序。Consumer 可以订阅一个或多个 Topic,并消费其中的消息。Consumer 可以根据自己的消费能力来决定消费的策略。 数据传输的事务定义 在 Kafka 中,数据传输的事务定义有三种级别: 1. 最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输。 2. 最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输。 3. 精确的一次:不会漏传输也不会重复传输,每个消息都传输被一次而且仅仅被传输一次,这是大家所期望的。 Kafka 判断节点是否还活着 Kafka 判断一个节点是否还活着有两个条件: 1. 节点必须可以维护和 ZooKeeper 的连接,Zookeeper 通过心跳机制检查每个节点的连接。 2. 如果节点是个 Follower,它必须能及时的同步 Leader 的写操作,延时不能太久。 Producer 是否直接将数据发送到 Broker 的 Leader Producer 直接将数据发送到 Broker 的 Leader,不需要在多个节点进行分发。为了帮助 Producer 做到这点,所有的 Kafka 节点都可以及时的告知哪些节点是活动的,目标 Topic 的目标分区的 Leader 在哪。 Kafka consumer 是否可以消费指定分区消息 Kafka Consumer 消费消息时,向 Broker 发出"fetch"请求去消费特定分区的消息,Consumer 指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,Consumer 拥有了 offset 的控制权,可以向后回滚去重新消费之前的消息,这是很有意义的。 Kafka 消息是采用 Pull 模式还是 Push 模式 Kafka 消息是采用 Pull 模式的。Producer 将消息推送到 Broker,Consumer 从 Broker 拉取消息。这种设计可以让 Consumer 自主决定消费策略,而不需要 Broker 决定推送的速率。 Kafka 存储在硬盘上的消息格式 Kafka 存储在硬盘上的消息格式由一个固定长度的头部和可变长度的字节数组组成。头部包含了一个版本号和 CRC32 校验码。 Kafka 高效文件存储设计特点 Kafka 的高效文件存储设计特点有: 1. Kafka 把 Topic 中的一个 Partition 大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。 2. 通过索引信息可以快速定位 message 和确定 response 的最大大小。 3. 通过 index 元数据全部映射到 memory,可以避免 segment file 的 IO 磁盘操作。 4. 通过索引文件稀疏存储,可以减少磁盘占用。 Kafka 是一种高性能、可扩展、可靠的消息中间件,广泛应用于大数据处理、实时数据处理和日志聚合等场景。
- 粉丝: 3
- 资源: 17
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助