9.10. 配置 Kafka MirrorMaker (已弃用)


更新 KafkaMirrorMaker 自定义资源的 spec 属性,以配置 Kafka MirrorMaker 部署。

您可以使用 TLS 或 SASL 身份验证为生产者和消费者配置访问控制。此流程演示了如何在消费者和生成器端使用 TLS 加密和 mTLS 身份验证的配置。

要深入了解 Kafka MirrorMaker 集群配置选项,请参阅 Apache Kafka 自定义资源 API 参考

重要

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

KafkaMirrorMaker 自定义资源配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
metadata:
  name: my-mirror-maker
spec:
  replicas: 3 
1

  consumer:
    bootstrapServers: my-source-cluster-kafka-bootstrap:9092 
2

    groupId: "my-group" 
3

    numStreams: 2 
4

    offsetCommitInterval: 120000 
5

    tls: 
6

      trustedCertificates:
        - secretName: my-source-cluster-ca-cert
          pattern: "*.crt"
    authentication: 
7

      type: tls
      certificateAndKey:
        secretName: my-source-secret
        certificate: public.crt
        key: private.key
    config: 
8

      max.poll.records: 100
      receive.buffer.bytes: 32768
  producer:
    bootstrapServers: my-target-cluster-kafka-bootstrap:9092
    abortOnSendFailure: false 
9

    tls:
      trustedCertificates:
        - secretName: my-target-cluster-ca-cert
          pattern: "*.crt"
    authentication:
      type: tls
      certificateAndKey:
        secretName: my-target-secret
        certificate: public.crt
        key: private.key
    config:
      compression.type: gzip
      batch.size: 8192
  include: "my-topic|other-topic" 
10

  resources: 
11

    requests:
      cpu: "1"
      memory: 2Gi
    limits:
      cpu: "2"
      memory: 2Gi
  logging: 
12

    type: inline
    loggers:
      mirrormaker.root.logger: INFO
  readinessProbe: 
13

    initialDelaySeconds: 15
    timeoutSeconds: 5
  livenessProbe:
    initialDelaySeconds: 15
    timeoutSeconds: 5
  metricsConfig: 
14

   type: jmxPrometheusExporter
   valueFrom:
     configMapKeyRef:
       name: my-config-map
       key: my-key
  jvmOptions: 
15

    "-Xmx": "1g"
    "-Xms": "1g"
  image: my-org/my-image:latest 
16

  template: 
17

    pod:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: application
                    operator: In
                    values:
                      - postgresql
                      - mongodb
              topologyKey: "kubernetes.io/hostname"
    mirrorMakerContainer: 
18

      env:
        - name: OTEL_SERVICE_NAME
          value: my-otel-service
        - name: OTEL_EXPORTER_OTLP_ENDPOINT
          value: "http://otlp-host:4317"
  tracing: 
19

    type: opentelemetry
Copy to Clipboard Toggle word wrap

1
副本节点的数量。
2
用于消费者和制作者的 Bootstrap 服务器。
3
消费者的组 ID。
4
消费者流的数量。
5
偏移 auto-commit 间隔(以毫秒为单位)。
6
用于加密到 Kafka 集群的 TLS 配置,可信证书存储在指定 secret 中的 X.509 格式。
7
为消费者或生成者(指定为 mTLS、基于令牌的 OAuth、基于 SASL 的 SCRAM-SHA-256/SCRAM-SHA-512 或 PLAIN)进行身份验证。
8
consumer 和 producer 的 Kafka 配置选项。
9
如果将 abortOnSendFailure 属性设置为 true,则 Kafka MirrorMaker 将退出,容器将按照消息发送失败重启。
10
从源镜像到目标 Kafka 集群包含的主题列表。
11
为保留支持的资源(当前 cpumemory )的请求,以及指定可消耗的最大资源的限制。
12
指定日志记录器和日志级别直接(内联)或通过 ConfigMap 间接添加(外部)。自定义 Log4j 配置必须放在 ConfigMap 中的 log4j.propertieslog4j2.properties 键下。MirrorMaker 只有一个日志记录器,名为 mirrormaker.root.logger。您可以将日志级别设置为 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 或 OFF。
13
检查检查以了解何时重启容器(存活度)以及何时容器可以接受流量(就绪度)。
14
Prometheus 指标,通过引用包含在此示例中 Prometheus JMX 导出器配置的 ConfigMap 启用。您可以使用对 metricsConfig.valueFrom.configMapKeyRef.key 下包含空文件的 ConfigMap 的引用来启用指标。
15
JVM 配置选项,用于优化运行 Kafka MirrorMaker 的虚拟机(VM)的性能。
16
ProductShortName OPTION: 容器镜像配置,仅在特殊情况下推荐使用。
17
模板自定义。此处的 pod 使用反关联性调度,因此 pod 不会调度到具有相同主机名的节点。
18
为分布式追踪设置环境变量。
19
使用 OpenTelemetry 启用分布式追踪。
警告

abortOnSendFailure 属性设置为 false 时,生产者会尝试在主题中发送下一个消息。原始消息可能会丢失,因为没有尝试重新发送失败的消息。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat