Kafka Connect-缺少文字

时间:2019-03-14 07:29:19

标签: apache-kafka apache-kafka-connect

Kafka版本:2.12-2.1.1

我创建了一个非常简单的示例,使用以下命令来创建源连接器和接收器连接器:

bin\windows\connect-standalone.bat config\connect-standalone.properties config\connect-file-source.properties config\connect-file-sink.properties

源文件名:text_2.txt

接收器文件名:test.sink_2.txt

使用了一个名为“ connect-test-2 ”的主题,我在PowerShell中创建了一个使用者以显示结果。

它在第一时间完美运行。但是,在我重新启动机器并重新启动所有内容之后。我发现缺少一些文字。

例如,当我在test_2.txt文件中键入以下字符并保存为以下内容时:

HAHAHA..

missing again
some text are missing

I am able to enter text
first letter is missing

testing testing. 

结果窗口(“消费者”)和接收器文件显示以下内容:

Value shows in consumer

Value shows in Sink File

如您所见,某些文本丢失了,我不知道为什么会这样。有什么建议吗?

[在下面添加了信息]

connect-file-source.properties

name=local-file-source
connector.class=FileStreamSource
tasks.max=1
file=test_2.txt
topic=connect-test-2

connect-file-sink.properties

name=local-file-sink
connector.class=FileStreamSink
tasks.max=1
file=test.sink_2.txt
topics=connect-test-2

1 个答案:

答案 0 :(得分:0)

我认为奇怪的行为是您修改接收器文件(text_2.txt)的方式。

停止连接器后如何应用更改:

  • 使用一些编辑器<-我认为您使用的是该方法
  • 仅在文件末尾添加新字符

FileStreamSource跟踪基于文件位置的更改。您正在以独立模式使用Kafka Connect,因此当前位置已写入/tmp/connect.offsets文件中。

如果使用编辑器修改源文件,则文件的全部内容均已更改。但是FileStreamSource仅检查大小是否已更改和轮询字符,即文件中的偏移量是否大于连接器上次处理的偏移量。

您只能通过在文件末尾添加新字符来修改源文件