首页 > 解决方案 > Kafka Connect:如何从自定义 SMT 的 connect-distributed.properties 读取/访问属性?

问题描述

我正在使用 Kafka Connect JDBC 源连接器和自定义 SMT。我想从 connect-distributed.properties 文件访问信任库和密钥库位置以及它们各自的密码。例如以下部分:

ssl.truststore.location=/opt/myapp/config/truststore.jks
ssl.truststore.password=mypassword
ssl.keystore.location=/opt/myapp/config/keystore.jks
ssl.keystore.password=mypassword
ssl.key.password=mypassword

如何在我的 SMT 内部实现?这更倾向于以下部分:

javax.net.ssl.trustStore
javax.net.ssl.keyStore
KAFKA_OPTS="-Djavax.net.ssl.trustStore=${CERTS_PATH}/truststore.jks -Djavax.net.ssl.trustStorePassword=$TRUSTSTORE_PASSWORD -Djavax.net.ssl.keyStore=${CERTS_PATH}/keystore.jks -Djavax.net.ssl.keyStorePassword=$KEYSTORE_PASSWORD -Djavax.net.ssl.keyPassword=$KEY_PASSWORD"

如果我不进行上述操作,来自我的自定义 SMT 的 Schema Registry 调用会引发 bad_certificate 异常。我知道我可以将这些属性设置为 ConfigDef 的一部分,但是公开凭据并不好。

谢谢

标签: apache-kafkaapache-kafka-connectconfluent-schema-registry

解决方案


您的转换不需要这些文件。它与连接工作线程在同一个 JVM 下运行,连接工作线程已经过身份验证。

您的 SMT 也应该只使用 Struct/Schema 对象,而不是使用 Regsistry HTTP 客户端操作的 Converter 或 Serializer 类。


推荐阅读