Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka MirrorMaker2-使用独立连接器自定义主题重命名_Apache Kafka_Apache Kafka Mirrormaker - Fatal编程技术网

Apache kafka MirrorMaker2-使用独立连接器自定义主题重命名

Apache kafka MirrorMaker2-使用独立连接器自定义主题重命名,apache-kafka,apache-kafka-mirrormaker,Apache Kafka,Apache Kafka Mirrormaker,我想将MirrorMaker作为独立连接器运行。 到目前为止,我还没有找到任何关于配置的文档。 就我所想象的,以下内容将复制myTopic 现在在目标集群中,我需要主题有另一个名称foo(而不是自动重命名)。 这是由MirrorSourceConnector直接支持的,还是需要其他方法 connector.class = org.apache.kafka.connect.mirror.MirrorSourceConnector tasksMax = 2 topics = myTopic sour

我想将MirrorMaker作为独立连接器运行。 到目前为止,我还没有找到任何关于配置的文档。 就我所想象的,以下内容将复制
myTopic

现在在目标集群中,我需要主题有另一个名称
foo
(而不是自动重命名)。 这是由
MirrorSourceConnector
直接支持的,还是需要其他方法

connector.class = org.apache.kafka.connect.mirror.MirrorSourceConnector
tasksMax = 2
topics = myTopic
source.cluster.bootstrap.servers = sourceHost:9092
target.cluster.bootstrap.servers = sinkHost:9092
因此,源代码有一个体面的

如何配置它取决于您是直接运行MM2还是在Kafka Connect中运行。你说的直接,这是在链接

基本上:

默认情况下,复制的主题将根据“源群集”重命名 别名“:

主题-1-->源。主题-1

这可以通过覆盖replication.policy.separator进行自定义 属性(默认为句点)。如果你需要更多的控制 如果定义了远程主题,则可以实现自定义 ReplicationPolicy和override replication.policy.class(默认值为 DefaultReplicationPolicy)

不幸的是,这意味着您不能仅通过配置代码重命名主题。(DefaultReplicationPolicy类仅允许您指定分隔符,而不允许指定其他内容)。这可能是因为当您指定要镜像的主题时,您使用的是正则表达式,而不是单个主题名称(即使您的源集群主题配置属性只是主题的名称-它仍然被视为正则表达式)

那么,回到文档:是Kafka connect源代码中的一个Java接口,因此您需要实现一个自定义Java类,该类实现
ReplicationPolicy
,然后在运行时确保它位于类路径上

假设您编写了这样一个类,并将其命名为
com.moffatt.kafka.connect.mirror.FooReplicationPolicy
。类的一个好模板是Kafka Connect附带的默认(显然是唯一的)复制策略类:。你可以看到,建造自己的建筑不会太困难。您可以轻松添加一个映射(硬编码或配置),该映射查找特定的配置主题名称,并将其映射到目标主题名称

您可以通过在配置中指定新类来使用它:
replication.policy.class=com.moffatt.kafka.connect.mirror.foopreplicationpolicy

不确定。MirrorMaker1可以用作连接器吗?截至目前,MirrorMaker2上的文档非常糟糕。卡夫卡·苏米特2020的这段视频表明这是可能的(大约14:35):但我不知道怎么做。。。