我正在尝试使用MirrorMaker 2.0复制Kafka集群。 我正在使用以下mm2属性:
# mm2.properties
clusters=source, dest
source.bootstrap.servers=kafka-1:9092,kafka-2:19092,kafka-3:29092
dest.bootstrap.servers=kafka-4:39092,kafka-5:49092,kafka-6:59092
source->dest.enabled=true
我可以看到,当MirrorMaker启动时,它会创建自己的主题。例如,在源集群上,它创建:mm2-configs.dest.internal,其中包含以下内容:
{
"properties":{
"connector.class":"org.apache.kafka.connect.mirror.MirrorSourceConnector",
"source.cluster.producer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"source.cluster.alias":"dest",
"source.cluster.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"target.cluster.producer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"enabled":"false",
"target.cluster.admin.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"target.cluster.alias":"source",
"target.cluster.consumer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"name":"MirrorSourceConnector",
"target.cluster.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"source.cluster.admin.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"source.cluster.consumer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092"
}
}
在目标集群mm2-configs.source.internal主题中,包含以下内容:
{
"properties":{
"connector.class":"org.apache.kafka.connect.mirror.MirrorSourceConnector",
"source.cluster.producer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"source.cluster.alias":"source",
"source.cluster.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"target.cluster.producer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"enabled":"true",
"target.cluster.admin.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"target.cluster.alias":"dest",
"target.cluster.consumer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"name":"MirrorSourceConnector",
"target.cluster.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
"source.cluster.admin.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
"source.cluster.consumer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092"
}
}
但是当我尝试将消息发送到源集群(kafka-1,kafka-2,kafka-3(时 - 没有复制到第二个集群。
我错过了什么?
感谢任何帮助 感谢
mm2在独立(单节点(模式下运行良好,但是当涉及到集群时,有一个错误。
详情已在此处报告: https://cwiki.apache.org/confluence/display/KAFKA/KIP-710%3A+Full+support+for+distributed+mode+in+dedicated+MirrorMaker+2.0+clusters
您的配置文件看起来不错。但是,这些引导服务器端口看起来不正常。19092
、29092
等 这些通常只9092
。 您可以尝试将它们改回9092
吗?
我想,我(在朋友的帮助下(找到了问题所在。如果在启动镜像制作之前主题不存在,则不会进行复制。主题应存在于源 Kafka 集群中。
我使用了启用了主题自动创建的 Java 生产者。似乎,自动主题创建不会触发镜像制作器开始复制。
我真的不知道这是定义source->dest.enabled=true
时的设计行为,还是与几天前解决的错误有关:https://github.com/apache/kafka/pull/7745。