Kafka核心逻辑介绍 | 京东云技术团队
💡
原文中文,约4600字,阅读约需11分钟。
📝
内容提要
Kafka是Linkedin开发的分布式消息系统,具有高吞吐量、低延迟、可扩展性、持久性、可靠性和高并发等特点。它支持多副本和分区,实时处理大量数据。Kafka的基本单位是消息,由key和value组成,根据策略路由到不同的分区。Kafka还有生产者、消费者、消费者组、分区、副本、Leader、Follower、Offset、ZooKeeper等概念。Kafka的高性能和高可用性通过数据批量发送、磁盘顺序读写、数据压缩传输、分区划分等方式实现。消费方式可以是最多一次、最少一次或精确一次。
🎯
关键要点
- Kafka是由Linkedin开发的分布式消息系统,支持分区和多副本。
- Kafka能够实时处理大量数据,适用于多种场景,如批处理和流式处理。
- Kafka具有高吞吐量和低延迟,每秒可处理几十万条消息,延迟仅为几毫秒。
- Kafka支持热扩展,具备持久性和可靠性,消息被持久化到本地磁盘并支持数据备份。
- Kafka允许集群中节点失败,具备容错性,支持数千个客户端同时读写。
- Kafka的基本单位是消息,由key和value组成,消息路由到不同的分区。
- Kafka使用日志文件保存消息,分区以文件形式存储,命名规则为<topic_name>-<partition_id>。
- Producer是消息生产者,Consumer是消息消费者,Consumer Group提高消费能力。
- Broker是Kafka集群中的一台机器,Controller由ZooKeeper选举产生,管理集群。
- Topic将消息分类,Partition提高并发能力,每个Partition是有序队列。
- Replication确保每个分区有多个副本,Leader负责数据的读写,Follower同步数据。
- Offset记录消费者消费的位置,ZooKeeper帮助管理集群信息。
- Kafka的高吞吐量通过数据批量发送、顺序读写、数据压缩和分区实现。
- ACK机制有三种模式,分别为0、1和all,影响消息的可靠性。
- Kafka的消费方式包括最多一次、最少一次和精确一次,影响数据的消费和记录方式。
- 高水位(HW)标识特定的消息偏移量,消费者只能消费HW之前的消息。
➡️