搜索

第 2 章 Kafka 的 Apache Kafka 部署流

download PDF

提供了 Apache Kafka 组件,用于使用 Streams for Apache Kafka 发行版本部署到 OpenShift。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 集群包含负责消息发送的代理。

ZooKeeper 用于集群管理。以 KRaft (Kafka Raft metadata)模式部署 Kafka 时,通过集成 Kafka 节点上的代理和控制器角色来简化集群管理,从而消除 ZooKeeper 的需求。Kafka 节点使用代理、控制器或两者的角色。使用节点池在 Apache Kafka 中配置了角色。

其他 Kafka 组件与 Kafka 集群交互,以执行特定的角色。

Kafka 组件交互

Data flows between several Kafka components and the Kafka cluster. See the component descriptions after this image.

Apache ZooKeeper
Apache ZooKeeper 提供了一个集群协调服务,用于存储和跟踪代理和消费者的状态。Zookeeper 也用于控制器选举。如果使用 ZooKeeper,则 ZooKeeper 集群必须在运行 Kafka 前就绪。在 KRaft 模式中,不需要 ZooKeeper,因为协调由作为控制器运行的 Kafka 集群中管理。
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 是写入分区的最后一条消息之间的延迟,以及当前由消费者从那个分区获取的消息之间的延迟
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.