【发布时间】:2020-01-19 14:04:52
【问题描述】:
我已经在分布式模式下安装并测试了 kafka connect,它现在可以工作,它连接到配置的接收器并从配置的源读取。 在这种情况下,我开始改进我的安装。我认为需要立即关注的一个领域是创建连接器,唯一可用的方法是通过 REST 调用,这意味着我需要通过线路发送我的信息,不受保护。 为了确保这一点,kafka 引入了新的 ConfigProvider,见于here。 这很有帮助,因为它允许在服务器中设置属性,然后在 rest 调用中引用它们,如下所示:
{
.
.
"property":"${file:/path/to/file:nameOfThePropertyInFile}"
.
.
}
这真的很好用,只需在服务器上添加属性文件并在distributed.properties文件中添加以下配置:
config.providers=file # multiple comma-separated provider types can be specified here
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider
虽然此解决方案有效,但它确实无助于缓解我对安全性的担忧,因为信息现在从通过网络发送到现在位于存储库中,并且每个人都可以看到文本。 kafka 团队预见到了这个问题,并允许客户端生成自己的配置提供程序来实现接口 ConfigProvider。 我创建了自己的实现并打包在一个 jar 中,并为其命名:
META-INF/services/org.apache.kafka.common.config.ConfigProvider
并在分发的文件中添加了以下条目:
config.providers=cust
config.providers.cust.class=com.somename.configproviders.CustConfigProvider
但是我从连接中得到一个错误,说明一个实现 ConfigProvider 的类,名称为:
com.somename.configproviders.CustConfigProvider
找不到。 我现在不知所措,因为他们网站上的文档没有明确说明如何很好地配置自定义配置提供程序。
有没有人研究过类似的问题并且可以提供一些见解?任何帮助将不胜感激。
【问题讨论】:
-
org.apache.kafka.common.config.ConfigProvider文件的内容是什么?
标签: apache-kafka apache-kafka-connect