第 2 章 关于 Kafka
Apache Kafka 是一个开源分布式发布-订阅消息传递系统,用于容错实时数据源。
其它资源
- 有关 Apache Kafka 的详情,请查看 Apache Kafka 网站。
2.1. Kafka 概念
了解 Kafka 的关键概念对于了解 AMQ Streams 的工作方式非常重要。
Kafka 集群包含多个代理。主题用于在 Kafka 集群中接收和存储数据。主题按分区分割,其中写入数据。分区在容错主题之间复制。
Kafka 代理和主题
- broker
- 代理有时也称为服务器或节点,负责编排存储和传递消息。
- 主题
- 主题提供数据存储的目的地。每个主题都被分成一个或多个分区。
- Cluster
- 组代理实例。
- 分区
- 主题分区的数量由主题 分区数 来定义。
- 分区领导
- 分区领导处理某个主题的所有制作者请求。
- 分区跟随器
分区后续程序复制分区领导的分区数据,可选择性地处理消费者请求。
主题使用 复制因素 来配置集群中的每个分区的副本数。主题至少包含一个分区。
同步副本 具有与领导相同数量的消息。配置定义要生成消息必须 同步 的副本数,以确保消息只有在成功复制到副本分区后才会提交。这样,如果领导机失败,消息就不会丢失。
在 Kafka 代理和主题 图中,我们可以看到每个编号分区在复制主题中都有一个领导者和两个跟随者。