6.6. 部署 Kafka MirrorMaker


Kafka MirrorMaker 在两个或多个 Kafka 集群之间复制数据,并在数据中心之间复制数据。此过程称为镜像(mirror),以避免与 Kafka 分区复制概念混淆。MirrorMaker 使用来自源集群的消息,并将这些消息重新发布到目标集群。

集群间的数据复制支持以下场景:

  • 在系统失败时恢复数据
  • 从多个源集群整合数据以进行集中分析
  • 对特定集群的数据访问限制
  • 在特定位置置备数据以提高延迟

6.6.1. 将 Kafka MirrorMaker 部署到 OpenShift 集群

此流程演示了如何使用 Cluster Operator 将 Kafka MirrorMaker 集群部署到 OpenShift 集群。

部署使用 YAML 文件来提供规格,根据部署的 MirrorMaker 版本创建 KafkaMirrorMakerKafkaMirrorMaker2 资源。MirrorMaker 2 基于 Kafka Connect,并使用其配置属性。

重要

Kafka MirrorMaker 1 (称为文档中的 MirrorMaker )已在 Apache Kafka 3.0.0 中弃用,并将在 Apache Kafka 4.0.0 中删除。因此,在 AMQ Streams 中还已弃用了用于部署 Kafka MirrorMaker 1 的 KafkaMirrorMaker 自定义资源。采用 Apache Kafka 4.0.0 时,KafkaMirrorMaker 资源将从 AMQ Streams 中删除。作为替代方法,在 IdentityReplicationPolicy 中使用 KafkaMirrorMaker2 自定义资源。

AMQ Streams 提供 示例配置文件。在此过程中,我们使用以下示例文件:

  • examples/mirror-maker/kafka-mirror-maker.yaml
  • examples/mirror-maker/kafka-mirror-maker-2.yaml
重要

如果部署 MirrorMaker 2 集群以并行运行,使用相同的目标 Kafka 集群,每个实例都必须对内部 Kafka Connect 主题使用唯一的名称。为此,请配置每个 MirrorMaker 2 实例来替换默认值

流程

  1. 将 Kafka MirrorMaker 部署到 OpenShift 集群:

    对于 MirrorMaker:

    oc apply -f examples/mirror-maker/kafka-mirror-maker.yaml
    Copy to Clipboard Toggle word wrap

    对于 MirrorMaker 2:

    oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yaml
    Copy to Clipboard Toggle word wrap
  2. 检查部署的状态:

    oc get pods -n <my_cluster_operator_namespace>
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪

    NAME                                    READY  STATUS   RESTARTS
    my-mirror-maker-mirror-maker-<pod_id>   1/1    Running  1
    my-mm2-cluster-mirrormaker2-<pod_id>    1/1    Running  1
    Copy to Clipboard Toggle word wrap

    my-mirror-maker 是 Kafka MirrorMaker 集群的名称。my-mm2-cluster 是 Kafka MirrorMaker 2 集群的名称。

    标识创建的每个 pod 的 pod ID。

    使用默认部署,您要安装单个 MirrorMaker 或 MirrorMaker 2 pod。

    READY 显示就绪/预期的副本数。当 STATUS 显示为 Running 时,部署成功。

6.6.2. Kafka MirrorMaker 2 集群资源列表

以下资源由 OpenShift 集群中的 Cluster Operator 创建:

<mirrormaker2_cluster_name>-mirrormaker2

提供给以下 MirrorMaker 2 资源的名称:

  • 负责创建 MirrorMaker 2 Pod 的部署。
  • MirrorMaker 2 节点使用的服务帐户。
  • 为 MirrorMaker2 worker 节点配置的 Pod Disruption Budget。
<mirrormaker2_cluster_name>-mirrormaker2-config
包含 MirrorMaker2 的辅助配置的 ConfigMap,由 MirrorMaker 2 Pod 挂载为卷。

6.6.3. Kafka MirrorMaker 集群资源列表

以下资源由 OpenShift 集群中的 Cluster Operator 创建:

<mirrormaker_cluster_name>-mirror-maker

提供给以下 MirrorMaker 资源的名称:

  • 负责创建 MirrorMaker Pod 的部署。
  • MirrorMaker 节点使用的服务帐户。
  • 为 MirrorMaker worker 节点配置的 Pod Disruption Budget。
<mirrormaker_cluster_name>-mirror-maker-config
包含 MirrorMaker 的辅助配置的 ConfigMap,由 MirrorMaker Pod 挂载为卷。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat