Kafka核心逻辑介绍 | 京东云技术团队
内容提要
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之前的消息。