我的Kafka连接器生成的Kafka消息的每条消息开头的两个奇怪字节

时间:2017-06-02 14:43:02

标签: apache-kafka apache-kafka-connect

我开发了一个Kafka连接器,它只是为从外部API检索的文件中的每一行创建消息。它工作得很好,但现在我尝试使用消息,并在每个值的开头有两个奇怪的字节。我可以通过控制台消费者和我的kafka流处理器重现这个问题。

�168410002,OpenX Market,459980962,OpenX_Bidder_Order_merkur_bidder_800x250,313115722,OpenX_Bidder_ANY_LI_merkur_800x250_550,106800839362,OpenX_Bidder_Creative_merkur_800x250_2,10

在创建SourceRecord之前,源文件很好甚至printlns都不显示这两个字节。我之前使用过一个带有一个字段的结构,现在使用一个简单的String模式,但我仍然遇到同样的问题:

def convert(line: String, ...) = {
...
val record = new SourceRecord(
  Partition.sole(partition),
  offset.forConnectApi,
  topic,
  Schema.STRING_SCHEMA,
  line
)
...

所以在上面的代码中,如果我添加println(line),则不显示任何奇怪的字符。

1 个答案:

答案 0 :(得分:2)

看起来您在连接器中使用了AvroConverter或JsonConverter。尝试在key.converter中使用Kafka附带的StringConverter,在worker中使用value.converter进行连接。这会将数据编码为不应该包含额外内容的字符串。