- Apache Kafka 教程
- Apache Kafka - 首页
- Apache Kafka - 简介
- Apache Kafka - 基础知识
- Apache Kafka - 集群架构
- Apache Kafka - 工作流程
- Apache Kafka - 安装步骤
- Apache Kafka - 基本操作
- 简单生产者示例
- 消费者组示例
- 与 Storm 集成
- 与 Spark 集成
- 实时应用(Twitter)
- Apache Kafka - 工具
- Apache Kafka - 应用
- Apache Kafka 有用资源
- Apache Kafka - 快速指南
- Apache Kafka - 有用资源
- Apache Kafka - 讨论
Apache Kafka - 集群架构
请查看以下插图。它显示了 Kafka 的集群图。
下表描述了上图中显示的每个组件。
序号 | 组件及描述 |
---|---|
1 |
代理(Broker) Kafka 集群通常包含多个代理来维护负载均衡。Kafka 代理是无状态的,因此它们使用 ZooKeeper 来维护其集群状态。一个 Kafka 代理实例每秒可以处理数十万次读写操作,并且每个代理可以处理 TB 级别的数据而不会影响性能。Kafka 代理领导者选举可以通过 ZooKeeper 完成。 |
2 |
ZooKeeper ZooKeeper 用于管理和协调 Kafka 代理。ZooKeeper 服务主要用于通知生产者和消费者 Kafka 系统中是否有任何新的代理出现或代理发生故障。根据 Zookeeper 收到的关于代理存在或故障的通知,生产者和消费者做出决策并开始与其他代理协调其任务。 |
3 |
生产者 生产者将数据推送到代理。当新的代理启动时,所有生产者都会搜索它并自动向该新代理发送消息。Kafka 生产者不会等待代理的确认,并尽可能快地发送消息,直到代理能够处理为止。 |
4 |
消费者 由于 Kafka 代理是无状态的,这意味着消费者必须通过使用分区偏移量来维护已消费了多少消息。如果消费者确认某个特定消息偏移量,则表示消费者已消费所有先前消息。消费者向代理发出异步拉取请求,以便准备一个字节缓冲区以供消费。消费者可以通过提供偏移量值来回溯或跳过分区中的任何位置。消费者偏移量值由 ZooKeeper 通知。 |
广告