Strimzi MirrorMaker2(mm2) TLS配置后刷新topic超时报错缺失配置排查
问题根因
该报错是MirrorMaker2的MirrorSourceConnector组件调用源Kafka集群的listTopics接口超时导致的,核心原因是没有为源集群的AdminClient组件配置TLS参数。
Strimzi封装的MirrorMaker2默认不会将全局的集群TLS配置同步给内部用于元数据查询的AdminClient,当你只配置了生产者、消费者的TLS参数时,负责查询Topic列表、拉取分区元数据的AdminClient仍会用明文协议访问源集群的TLS监听端口,请求被拦截后无法得到响应,最终触发超时。
修复方案
你需要补充源集群AdminClient专用的TLS配置,配置项需要以[源集群别名].admin.为前缀,和你已配置的源集群全局TLS参数完全一致即可。
示例配置(假设源集群别名为source,使用PKCS12证书存储):
# 你已经配置的源集群基础TLS参数 source.security.protocol=SSL source.ssl.truststore.location=/opt/kafka/truststore/cluster-ca.p12 source.ssl.truststore.password=${SOURCE_TRUSTSTORE_PWD} # 如果开启mTLS需要额外配置keystore source.ssl.keystore.location=/opt/kafka/keystore/user.p12 source.ssl.keystore.password=${SOURCE_KEYSTORE_PWD} # 新增缺失的AdminClient TLS配置 source.admin.security.protocol=SSL source.admin.ssl.truststore.location=/opt/kafka/truststore/cluster-ca.p12 source.admin.ssl.truststore.password=${SOURCE_TRUSTSTORE_PWD} source.admin.ssl.keystore.location=/opt/kafka/keystore/user.p12 source.admin.ssl.keystore.password=${SOURCE_KEYSTORE_PWD}
额外注意事项:
- 如果目标集群也开启了TLS,需要同步补充
[目标集群别名].admin.前缀的TLS配置,避免后续向目标集群同步元数据时出现同类报错 - 如果你是通过Strimzi Operator的MirrorMaker2 CRD来配置实例,直接在CR的
spec.mirrors[].sourceCluster.config字段中添加上述AdminClient配置即可,Operator会自动处理证书挂载和密码注入 - 配置修改完成后重启MirrorMaker2实例即可生效,生效后可观察日志是否还有超时报错,也可以在MM2运行环境中用
kafka-topics.sh工具携带对应TLS参数测试源集群连通性,排除网络策略、证书过期等基础问题
内容的提问来源于stack exchange,提问作者user3418170
相关产品推荐
相关产品推荐

