我有一个使用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
此外,当我使用本地安装的融合平台消息时,这些消息是可读的,所以问题可能出在快速数据开发映像中吗?
答案 0 :(得分:0)
根据Landoop Kafka-Topic-ui第21行的代码
有一个函数采用参数“格式”。假设此getDataFromBeginning
是从某个主题检索所有消息的函数,如果“格式”(二进制,avro等)更改了,它将无法正常工作。
恕我直言,这是导致您出现问题的原因。