2024年5月3日发(作者:)
Apache Kafka总体架构由多个关键组件组成,每个组件在消息传递和数据
流处理中扮演特定角色。以下是Kafka主要组件及其功能概述:
1. Broker:
Kafka Broker是集群中的一个工作节点,负责接收、存储和转发消息。
每个Broker都保存了一部分的消息分区,并为客户端提供读写服务。
Broker之间通过复制机制实现高可用性和容错性。
2. Topic:
Topic是Kafka中消息的逻辑分类,生产者发布消息到特定的Topic,消费
者从Topic订阅并消费消息。
Topic可以被分为多个Partition(分区),每个Partition是一个有序且不
可变的消息序列。
3. Producer:
生产者是向Kafka Broker发送消息的应用程序或进程。
生产者可以选择将消息发布到Topic的哪个Partition上,可以通过指定键
(Key)和分区器策略来决定消息的路由。
4. Consumer:
消费者是订阅并从Kafka Broker读取消息的应用程序或进程。
消费者可以以组的形式组织起来,每个消费组内的消费者会共同消费Topic
的所有分区,但确保每条消息只被组内一个消费者消费一次(即实现了负载均衡
和容错)。
5. Consumer Group:
消费者组允许多个消费者实例共同消费一个Topic,同时保证了消息的唯一
消费(只要组内不重复即可)。
6. Offsets:
消费者跟踪自己在每个Partition上的消费位置,这个位置被称为Offset。
Kafka自动管理这些Offset,允许消费者重新消费或者跳过某些已消费过的
消息。
7. Zookeeper(早期版本使用):
在较早版本的Kafka中,Zookeeper作为元数据存储系统,用于管理和协
调Broker、消费者组等的状态信息,如Broker注册、消费者组协调、分区首领
选举等。
新版Kafka自2.0开始,逐渐弃用Zookeeper,转而使用更先进的控制器
模型和Kafka Raft协议来管理集群内部的元数据和协调。
8. Kafka Connect:
一个用于连接Kafka和其他外部系统的工具,提供了预定义的连接器,方
便导入导出数据,实现数据管道。
9. Kafka Streams API:
提供了一个简单的Java库,使开发者能够构建分布式流处理应用,直接在
Kafka集群上进行数据转换和聚合操作。
以上内容概括了Kafka的主要组件及其核心功能,具体的功能细节和技术
实现可能随着Kafka版本的迭代有所更新和增强。


发布评论