2.4. Kafka MirrorMaker 集群配置
本章论述了如何在 AMQ Streams 集群中配置 Kafka MirrorMaker 部署,以便在 Kafka 集群间复制数据。
您可以使用带有 MirrorMaker 或 MirrorMaker 2.0 的 AMQ Streams。MirrorMaker 2.0 是最新版本,提供在 Kafka 集群间镜像数据更为有效的方法。
				如果使用 MirrorMaker,请配置 KafkaMirrorMaker 资源。
			
					在 Apache Kafka 3.0.0 中已弃用 Kafka MirrorMaker 1 (正如文档中的 imagesMaker),并将在 Apache Kafka 4.0.0 中删除。因此,在 AMQ Streams 中还已弃用了用于部署 Kafka MirrorMaker 1 的 KafkaMirrorMaker 自定义资源。当使用 Apache Kafka 4.0.0 时,KafkaMirrorMaker 资源将从 AMQ Streams 中删除。作为替代方法,在 IdentityReplicationPolicy 中使用 KafkaMirrorMaker2 自定义资源。
				
以下步骤演示了如何配置资源:
				KafkaMirrorMaker 资源的完整 schema 在 KafkaMirrorMaker 模式中描述。
			
2.4.1. 配置 Kafka MirrorMaker 复制链接链接已复制到粘贴板!
					使用 KafkaMirrorMaker 资源的属性来配置 Kafka MirrorMaker 部署。
				
您可以使用 TLS 或 SASL 身份验证为制作者和使用者配置访问控制。此流程演示了在使用者和生产端使用 TLS 加密和解密的配置。
先决条件
有关运行的信息 ,请参阅 OpenShift 中的部署和升级 AMQ Streams 指南:
- 源和目标集群必须可用
 
流程
编辑
KafkaMirrorMaker资源的spec属性。您可以在以下示例配置中显示您可以配置的属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - 2
 - 面向消费者和生成器的 bootstrap 服务器。
 - 3
 - 4
 - 5
 - 6
 - TLS 加密,使用密钥名称,其中 TLS 证书存储为消费者或制作者的 X.509 格式。如果证书存储在同一 secret 中,可以多次列出它。
 - 7
 - 使用 TLS 机制的用于消费者或生成者的验证(如此处所示),使用 OAuth bearer tokens, 或一个基于 SASL 的 SCRAM-SHA-256/SCRAM-SHA-512 或 PLAIN 机制。
 - 8
 - 9
 - 使用 TLS 版本的特定 密码套件 运行外部监听程序的 SSL 属性。
 - 10
 - 通过设置为
HTTPS来启用主机名验证。空字符串禁用验证。 - 11
 - 如果
abortOnSendFailure属性设为true,则 Kafka MirrorMaker 将退出,并且容器将因消息的发送失败而重启。 - 12
 - 使用 TLS 版本的特定 密码套件 运行外部监听程序的 SSL 属性。
 - 13
 - 通过设置为
HTTPS来启用主机名验证。空字符串禁用验证。 - 14
 - 15
 - 16
 - 通过 ConfigMap 直接添加(
内联)或间接(外部)的指定 日志记录器和日志级别。自定义 ConfigMap 必须放在log4j.properties或log4j2.properties键下。MirrorMaker 有一个名为mirrormaker.root.logger的单个日志记录器。您可以将日志级别设置为 INFO、ERROR、WARN、TRACE、DEBUG、FATAL 或 OFF。 - 17
 - 状况检查,了解何时重启容器(持续)以及容器是否可以接受流量(就绪状态)。
 - 18
 - Prometheus metrics,通过引用本例中的 Prometheus JMX JMX exporter 配置的 ConfigMap 来启用。您可以启用指标,而无需进一步配置,使用对
metricsConfig.valueFrom.configMapKeyRef.key下包含空文件的 ConfigMap 的引用。 - 19
 - JVM 配置选项,用于优化运行 Kafka MirrorMaker 的虚拟机(VM)性能。
 - 20
 - ADVANCED OPTION: 容器镜像配置,这只在特殊情况下建议。
 - 21
 - 模板自定义。这里调度了带有反关联性的 pod,因此不会将 pod 调度到具有相同主机名的节点。
 - 22
 - 还使用 Jaeger 为分布式追踪 设置环境变量。
 - 23
 
警告将
abortOnSendFailure属性设置为false时,生产者会尝试在主题中发送下一消息。原始消息可能会丢失,因为没有尝试重新发送失败的信息。创建或更新资源:
oc apply -f <your-file>
oc apply -f <your-file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
2.4.2. Kafka MirrorMaker 集群资源列表 复制链接链接已复制到粘贴板!
以下资源由 OpenShift 集群中的 Cluster Operator 创建:
- <mirror-maker-name>-mirror-maker
 - 负责创建 Kafka MirrorMaker Pod 的部署。
 - <mirror-maker-name>-config
 - ConfigMap,包含 Kafka MirrorMaker 的辅助配置,并被 Kafka 代理 Pod 挂载为卷。
 - <mirror-maker-name>-mirror-maker
 - 为 Kafka MirrorMaker worker 节点配置的 Pod Disruption Budget。