第 3 章 Kafka 的 AMQ Streams 部署
通过 AMQ Streams 发行版为 OpenShift 部署提供了 Apache Kafka 组件。Kafka 组件通常作为集群运行,以实现可用性。
集成 Kafka 组件的典型部署可能包括:
- 代理节点的 Kafka 集群
- 复制 ZooKeeper 实例的 zookeeper 集群
- Kafka Connect 集群用于外部数据连接
- Kafka MirrorMaker 集群,在第二个集群中镜像 Kafka 集群
- kafka Exporter 用于提取额外的 Kafka 指标数据以进行监控
- Kafka Bridge 向 Kafka 集群发出基于 HTTP 的请求
并非所有组件都是必须的,但您至少需要 Kafka 和 ZooKeeper。有些组件可以在没有 Kafka 的情况下部署,如 MirrorMaker 或 Kafka Connect。
3.1. Kafka 组件架构
Kafka 代理集群处理消息的发送。
代理使用 Apache ZooKeeper 来存储配置数据和集群协调。在运行 Apache Kafka 之前,Apache ZooKeeper 集群必须就绪。
其他 Kafka 组件与 Kafka 集群交互,以执行特定角色。
Kafka 组件交互
- Apache ZooKeeper
- Apache ZooKeeper 是 Kafka 的核心依赖关系,因为它提供集群协调服务,用于存储和跟踪代理和消费者的状态。zookeeper 也用于分区的领导选举。
- Kafka Connect
Kafka Connect 是一个集成工具包,用于使用 Connector 插件在 Kafka 代理和其他系统间流传输数据。Kafka Connect 提供了一个框架,用于将 Kafka 与外部数据源或目标(如数据库)集成,以使用连接器导入或导出数据。连接器是提供所需连接配置的插件。
- 源 连接器将外部数据推送(push)到 Kafka 中。
sink 连接器从 Kafka 中提取数据
外部数据被转换并转换为适当的格式。
您可以使用
build
配置部署 Kafka Connect,这些配置会自动使用数据连接所需的连接器插件构建容器镜像。
- Kafka MirrorMaker
Kafka MirrorMaker 在数据中心内或跨数据中心内两个 Kafka 集群之间复制数据。
MirrorMaker 从源 Kafka 集群获取信息,并将其写入目标 Kafka 集群。
- Kafka Bridge
- Kafka Bridge 为将基于 HTTP 的客户端与 Kafka 集群集成提供了一个 API。
- Kafka Exporter
- Kafka Exporter 提取数据作为 Prometheus 指标,主要与偏移、消费者组、消费者滞后和主题相关的数据。消费者的滞后是最后写入分区的消息与消费者从该分区中提取的消息之间的延迟