6.6. 部署 Kafka MirrorMaker
Kafka MirrorMaker 在两个或多个 Kafka 集群之间复制数据,并在数据中心之间复制数据。此过程称为镜像(mirror),以避免与 Kafka 分区复制概念混淆。MirrorMaker 使用来自源集群的消息,并将这些消息重新发布到目标集群。
集群间的数据复制支持以下场景:
- 在系统失败时恢复数据
- 从多个源集群整合数据以进行集中分析
- 对特定集群的数据访问限制
- 在特定位置置备数据以提高延迟
6.6.1. 将 Kafka MirrorMaker 部署到 OpenShift 集群 复制链接链接已复制到粘贴板!
此流程演示了如何使用 Cluster Operator 将 Kafka MirrorMaker 集群部署到 OpenShift 集群。
部署使用 YAML 文件来提供规格,根据部署的 MirrorMaker 版本创建 KafkaMirrorMaker 或 KafkaMirrorMaker2 资源。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 实例来替换默认值。
流程
将 Kafka MirrorMaker 部署到 OpenShift 集群:
对于 MirrorMaker:
oc apply -f examples/mirror-maker/kafka-mirror-maker.yaml
oc apply -f examples/mirror-maker/kafka-mirror-maker.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 MirrorMaker 2:
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yaml
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查部署的状态:
oc get pods -n <my_cluster_operator_namespace>
oc get pods -n <my_cluster_operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示部署名称和就绪
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
NAME READY STATUS RESTARTS my-mirror-maker-mirror-maker-<pod_id> 1/1 Running 1 my-mm2-cluster-mirrormaker2-<pod_id> 1/1 Running 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 挂载为卷。