11.6. 在专用模式下运行 MirrorMaker 2


使用 MirrorMaker 2 通过配置同步 Kafka 集群间的数据。此流程演示了如何配置和运行专用的单节点 MirrorMaker 2 集群。专用集群使用 Kafka Connect worker 节点在 Kafka 集群间镜像数据。

注意

也可以在分布式模式下运行 MirrorMaker 2。MirrorMaker 2 在专用和分布式模式中作为连接器运行。在运行专用 MirrorMaker 集群时,连接器会在 Kafka Connect 集群中配置。因此,这允许直接访问 Kafka Connect 集群、运行额外连接器并使用 REST API。如需更多信息,请参阅 Apache Kafka 文档

配置必须指定:

  • 每个 Kafka 集群
  • 每个集群的连接信息,包括 TLS 身份验证
  • 复制流和方向

    • 集群到集群
    • topic 的主题
  • 复制规则
  • 提交偏移跟踪间隔

此流程描述了如何通过在属性文件中创建配置来实现 MirrorMaker 2,然后在使用 MirrorMaker 脚本文件设置连接时传递属性。

您可以指定您要从源集群复制的主题和消费者组。您可以指定源和目标集群的名称,然后指定要复制的主题和消费者组。

在以下示例中,指定了主题和消费者组,用于从集群 1 复制到 2。

复制特定主题和消费者组的配置示例

clusters=cluster-1,cluster-2
cluster-1->cluster-2.topics = topic-1, topic-2
cluster-1->cluster-2.groups = group-1, group-2
Copy to Clipboard Toggle word wrap

您可以提供名称列表或使用正则表达式。默认情况下,如果您未设置这些属性,则会复制所有主题和消费者组。您还可以使用 RCU 作为正则表达式复制所有主题和消费者组。 但是,尝试只指定您需要指定主题和消费者组,以避免在集群中造成不必要的额外负载。

开始前

./config/connect-mirror-maker.properties 中提供了示例配置属性文件。

先决条件

流程

  1. 在文本编辑器中打开示例属性文件,或创建一个新文件,并编辑该文件使其包含连接信息以及每个 Kafka 集群的复制流程。

    以下示例显示了连接两个集群的配置,即 cluster-1cluster-2 双向。集群名称可通过集群属性 配置

    MirrorMaker 2 配置示例

    clusters=cluster-1,cluster-2 
    1
    
    
    cluster-1.bootstrap.servers=<cluster_name>-kafka-bootstrap-<project_name_one>:443 
    2
    
    cluster-1.security.protocol=SSL 
    3
    
    cluster-1.ssl.truststore.password=<truststore_name>
    cluster-1.ssl.truststore.location=<path_to_truststore>/truststore.cluster-1.jks_
    cluster-1.ssl.keystore.password=<keystore_name>
    cluster-1.ssl.keystore.location=<path_to_keystore>/user.cluster-1.p12
    
    cluster-2.bootstrap.servers=<cluster_name>-kafka-bootstrap-<project_name_two>:443 
    4
    
    cluster-2.security.protocol=SSL 
    5
    
    cluster-2.ssl.truststore.password=<truststore_name>
    cluster-2.ssl.truststore.location=<path_to_truststore>/truststore.cluster-2.jks_
    cluster-2.ssl.keystore.password=<keystore_name>
    cluster-2.ssl.keystore.location=<path_to_keystore>/user.cluster-2.p12
    
    cluster-1->cluster-2.enabled=true 
    6
    
    cluster-2->cluster-1.enabled=true 
    7
    
    cluster-1->cluster-2.topics=.* 
    8
    
    cluster-2->cluster-1.topics=topic-1, topic-2 
    9
    
    cluster-1->cluster-2.groups=.* 
    10
    
    cluster-2->cluster-1.groups=group-1, group-2 
    11
    
    
    replication.policy.separator=- 
    12
    
    sync.topic.acls.enabled=false 
    13
    
    refresh.topics.interval.seconds=60 
    14
    
    refresh.groups.interval.seconds=60 
    15
    Copy to Clipboard Toggle word wrap

    1
    每个 Kafka 集群都使用其别名来标识。
    2
    使用 bootstrap address 和端口 443 用于 cluster-1 的连接信息。两个集群都使用端口 443 连接到使用 OpenShift Routes 的 Kafka。
    3
    ssl. 属性定义 cluster-1 的 TLS 配置。
    4
    cluster-2 的连接信息。
    5
    ssl. 属性定义 cluster-2 的 TLS 配置。
    6
    cluster-1 启用复制流到 cluster-2
    7
    cluster-2 启用复制流到 cluster-1
    8
    将所有主题从 cluster-1 复制到 cluster-2。源连接器复制指定的主题。checkpoint 连接器跟踪指定主题的偏移。
    9
    将特定主题从 cluster-2 复制到 cluster-1
    10
    将所有消费者组从 cluster-1 复制到 cluster-2。checkpoint 连接器复制指定的消费者组。
    11
    将特定消费者组从 cluster-2 复制到 cluster-1
    12
    定义用于重命名远程主题的分隔符。
    13
    启用后,ACL 将应用到同步主题。默认值为 false
    14
    检查之间的期间,检查要同步的新主题。
    15
    检查要同步的新消费者组之间的周期。
  2. OPTION:如果需要,请添加一个策略来覆盖远程主题的自动重命名。该主题不会用源集群的名称来附加名称,而是保留其原始名称。

    此可选设置用于主动/被动备份和数据迁移。

    replication.policy.class=org.apache.kafka.connect.mirror.IdentityReplicationPolicy
    Copy to Clipboard Toggle word wrap
  3. OPTION:如果要同步消费者组偏移,请添加配置来启用和管理同步:

    refresh.groups.interval.seconds=60
    sync.group.offsets.enabled=true 
    1
    
    sync.group.offsets.interval.seconds=60 
    2
    
    emit.checkpoints.interval.seconds=60 
    3
    Copy to Clipboard Toggle word wrap
    1
    用于同步消费者组偏移的可选设置,这对于在主动/被动配置中恢复非常有用。默认不启用同步。
    2
    如果启用了使用者组偏移的同步,您可以调整同步的频率。
    3
    调整检查偏移跟踪的频率。如果您更改了偏移同步的频率,您可能需要调整这些检查的频率。
  4. 在目标集群中启动 Kafka:

    /opt/kafka/bin/kafka-server-start.sh -daemon \
    /opt/kafka/config/kraft/server.properties
    Copy to Clipboard Toggle word wrap
  5. 使用您在属性文件中定义的集群连接配置和复制策略启动 MirrorMaker:

    /opt/kafka/bin/connect-mirror-maker.sh \
    /opt/kafka/config/connect-mirror-maker.properties
    Copy to Clipboard Toggle word wrap

    MirrorMaker 在集群之间设置连接。

  6. 对于每个目标集群,验证主题是否被复制:

    /opt/kafka/bin/kafka-topics.sh --bootstrap-server <broker_host>:<port> --list
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat