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