apache-kafka - 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 的一部分,但是公开凭据并不好。
谢谢
解决方案
您的转换不需要这些文件。它与连接工作线程在同一个 JVM 下运行,连接工作线程已经过身份验证。
您的 SMT 也应该只使用 Struct/Schema 对象,而不是使用 Regsistry HTTP 客户端操作的 Converter 或 Serializer 类。
推荐阅读
- visual-studio-code - 我可以从 webview 执行可执行文件吗?
- kubernetes - Kubernetes:附加调用失败时的行为。我们应该永远重试Attach,还是永远Mount?
- python - 如何使用 BeautifulSoup 从维基百科表中解析 html 并输出干净的数据?
- google-search-console - 如何解决出现在谷歌控制台上的错误 400?
- c# - 为 Unity .Net4.5 问题制作占位符插件
- ios - 异常 - 调用时抛出无法识别的发送到实例的选择器
- javascript - 谷歌地图嵌入不显示
- java - 在接口的所有子类中强加一个静态变量
- python - `连接多个点的最短路径` NP-complete 算法
- java - 是否可以与 javax.jms 建立 rabbitMQ 连接(不使用 rabbitMQ jms 客户端/java 客户端)?如果是的话怎么办?