首页 > 解决方案 > 卡夫卡没有发布对主题的文件更改

问题描述

阅读:Kafka Connect FileStreamSource 忽略附加行

2018 年的回答指出:

Kafka Connect does not "watch" or "tail" a file. I don't believe it is documented anywhere that it does do that.

看来卡夫卡现在确实支持阅读:

https://docs.confluent.io/5.5.0/connect/managing/configuring.html#standalone-example

确实说明文件已被观看:

FileSource 连接器 FileSource 连接器从文件中读取数据并将其发送到 Apache Kafka®。除了所有连接器共有的配置之外,它只需要一个输入文件和输出主题作为属性。这是一个示例配置:

name=local-file-source connector.class=FileStreamSource tasks.max=1 file=/tmp/test.txt topic=connect-test 此连接器将只读取一个文件并将该文件中的数据发送到 Kafka。然后它将仅监视文件以获取附加更新。对已发送到 Kafka 的文件行的任何修改都不会被重新处理。

我的配置与发布的问题相同Kafka Connect FileStreamSource 忽略附加行

connect-file-source.properties 包含:

name=my-file-connector
connector.class=FileStreamSource
tasks.max=1
file=/data/users/zamara/suivi_prod/app/data/logs.txt
topic=connect-test

开始独立连接

connect-standalone connect-standalone.properties connect-file-source.properties 

将文件的所有内容添加logs.txt到主题connect-test,添加新行logs.txt不会将行添加到主题。是否需要配置才能使 Kafka 观看文件,以便将添加到的新数据添加到logs.txt主题中connect-test

标签: apache-kafka

解决方案


除非您只是FileStreamSource出于教育目的而进行试验,否则您将走上一条死胡同。该连接器仅作为示例连接器存在。

要将文件摄取到 Kafka 中,请使用 Kafka Connect Spooldir、Kafka Connect FilePulse,或者查看 Elastic 的 Filebeat 之类的东西。


推荐阅读