通过春季kafka发送时,landoop / fast-data-dev中的kafka消息数据类型错误

时间:2019-05-05 17:45:38

标签: spring-boot apache-kafka avro spring-kafka

我有一个使用Spring-Kafka的Spring Boot应用程序,我在docker中使用landoop's fast-data-dev作为我的kafka集群。 我使用kafka模板,avro和confluent的架构注册表生成有关某个主题的消息。一切似乎都工作正常,但是当我输入fast-data-dev ui时,我可以看到我的模式已注册,并且消息仍显示为Data type: binary而不是'avro',因此它们的值在ui中不可读。我尝试使用kafka-avro-console-producer将一些消息发送到另一个主题,这些消息没有这样的问题-它们在avro中可见并且在ui中可读。但是,当我使用kafka-avro-console-producer将消息发送到应用程序向其发送消息的同一主题时,它的可见方式与我的应用程序发送的消息相同(二进制)。

我在Spring-Kafka上缺少添加数据类型标头的内容吗?还是有完全不同的原因?

这是我应用程序的一部分。yml:

spring.kafka:
  bootstrap-servers: localhost:9092
  producer:
    key-serializer: org.apache.kafka.common.serialization.StringSerializer
    value-serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
    properties:
      schema.registry.url: http://localhost:8081

此外,当我使用本地安装的融合平台消息时,这些消息是可读的,所以问题可能出在快速数据开发映像中吗?

1 个答案:

答案 0 :(得分:0)

根据Landoop Kafka-Topic-ui第21行的代码

有一个函数采用参数“格式”。假设此getDataFromBeginning是从某个主题检索所有消息的函数,如果“格式”(二进制,avro等)更改了,它将无法正常工作。

恕我直言,这是导致您出现问题的原因。