具有不同数据格式的卡夫卡主题

时间:2019-01-16 04:31:59

标签: apache-kafka avro confluent-schema-registry

我已经使用Kafka-avro-console-producer向“ test-avro”主题写了一些Avro数据。 然后,我使用Kafka-console-producer将一些纯文本数据写入同一主题“ test-avro”。 此后,主题中的所有数据都被破坏。谁能解释导致这种情况发生的原因?

1 个答案:

答案 0 :(得分:1)

您根本无法再使用avro-console-consumer(或具有Avro解串器的Consumer)来读取这些偏移量,因为它将假定主题中的所有数据都是Avro并使用Confluent的KafkaAvroDeserializer

普通的console-producer将推送非Avg编码的UTF-8字符串,并使用StringSerializer,该字符串与the wire format expected for the Avro deserializer不匹配

克服它们的唯一方法是知道哪些偏移量不好,然后等待它们在主题上过期,或者重置使用者组以在这些消息之后开始。或者,您始终可以使用ByteArrayDeserializer,并添加一堆条件逻辑来解析消息以确保不会丢失数据。

tl; dr 生产者和消费者必须就该主题的数据格式达成共识。

相关问题