Debezium Kafka Connect多余镜像插件的来源及移除方法咨询
问题解答
插件来源
这些org.apache.kafka.connect.mirror下的镜像插件是Kafka Connect的核心内置组件(属于MirrorMaker 2.0跨集群同步功能),它们被直接打包在Kafka的核心classpath中,并非通过plugin.path或CONNECT_PLUGINS_DIR配置的目录加载。
Debezium Connect镜像基于Apache Kafka官方镜像构建,因此默认继承了这一特性——即使你将插件路径设为空,这些核心内置插件仍会被加载,不受外部插件目录配置的影响。
移除方法
要彻底移除这些内置镜像插件,有两种可行方案:
方案1:自定义Docker镜像删除相关Jar包
创建一个自定义Dockerfile,基于官方Debezium Connect镜像,删除Kafka核心库中的MirrorMaker相关Jar文件:
FROM debezium/connect:2.5 # 删除所有MirrorMaker相关的Jar包 RUN rm -rf /kafka/libs/kafka-mirror-*.jar
然后在Docker Compose的kconnect服务中,将image字段改为你构建的自定义镜像(比如my-custom-debezium-connect:2.5)。
方案2:通过JVM启动参数禁用插件
在Docker Compose的kconnect服务环境变量中添加JVM参数,强制排除MirrorMaker插件的加载:
environment: # 保留原有环境变量... KAFKA_OPTS: "-Dkafka.connect.mirror.enabled=false"
同时确保CONNECT_PLUGIN_PATH仍设为空,这样启动后Connect就不会加载任何外部插件,也不会加载内置的MirrorMaker组件。
验证移除效果:重启Connect容器后,再次执行命令:
curl -s localhost:8083/connector-plugins | jq .
此时应返回空数组。
内容的提问来源于stack exchange,提问作者user3783064
相关产品推荐
相关产品推荐

