小编Car*_*uis的帖子

创建和使用自定义 kafka 连接配置提供程序

我已经在分布式模式下安装并测试了 kafka connect,它现在可以工作,它连接到配置的接收器并从配置的源读取。在这种情况下,我开始改进我的安装。我认为需要立即关注的一个方面是,要创建连接器,唯一可用的方法是通过 REST 调用,这意味着我需要通过线路发送我的信息,不受保护。为了确保这一点,kafka 引入了新的 ConfigProvider 在这里看到。这很有用,因为它允许在服务器中设置属性,然后在其余调用中引用它们,如下所示:

{
.
.
"property":"${file:/path/to/file:nameOfThePropertyInFile}"
.
.
}
Run Code Online (Sandbox Code Playgroud)

这非常有效,只需在服务器上添加属性文件并在分布式.properties 文件中添加以下配置:

config.providers=file   # multiple comma-separated provider types can be specified here
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider
Run Code Online (Sandbox Code Playgroud)

虽然此解决方案有效,但它确实无助于减轻我对安全性的担忧,因为信息现在从通过网络发送,现在位于存储库中,每个人都能看到清晰的文本。kafka 团队预见到了这个问题,并允许客户端生成自己的配置提供程序,实现接口 ConfigProvider。我已经创建了我自己的实现并打包在一个 jar 中,给它一个 sugested 最终名称:

META-INF/services/org.apache.kafka.common.config.ConfigProvider
Run Code Online (Sandbox Code Playgroud)

并在分发的文件中添加了以下条目:

config.providers=cust
config.providers.cust.class=com.somename.configproviders.CustConfigProvider
Run Code Online (Sandbox Code Playgroud)

但是,我从连接中收到一个错误,指出一个实现了 ConfigProvider 的类,名称为:

com.somename.configproviders.CustConfigProvider
Run Code Online (Sandbox Code Playgroud)

找不到。我现在不知所措,因为他们网站上的文档没有明确说明如何很好地配置自定义配置提供程序。

有没有人研究过类似的问题并且可以对此提供一些见解?任何帮助,将不胜感激。

apache-kafka apache-kafka-connect

4
推荐指数
1
解决办法
1584
查看次数

标签 统计

apache-kafka ×1

apache-kafka-connect ×1