代码之家  ›  专栏  ›  技术社区  ›  Casel Chen

使用kafka avro控制台时出错消费者使用spring cloud stream kafka发送的avro消息

  •  0
  • Casel Chen  · 技术社区  · 8 年前

    我试过了 schema-registry-confluent 例如(消费者/生产者)在我本地安装的confluent 4.0.0中,当发送post请求并在侦听器中接收时,它可以发送“传感器”avro消息,但当我使用confluent 4.0.0附带的kafka avro控制台消费者工具查看发送的avro消息时,该工具引发了以下错误(a)。我还尝试使用kafka avro控制台生成工具发送的avro消息(该消息可以在kafka avro控制台消费工具中正确显示),它报告了以下错误(b)。给定的示例不支持confluent 4.0.0吗?非常感谢!

    (a) 卡夫卡avro控制台使用者错误=>

    错误运行consumer时出现未知错误:(kafka.tools.ConsoleConsumer$:107) 组织。阿帕奇。卡夫卡。常见的错误。SerializationException:反序列化id为-1的Avro消息时出错 原因:org。阿帕奇。卡夫卡。常见的错误。SerializationException:未知的魔法字节!

    (b) 侦听器错误=>

    组织。springframework。信息。转换器。MessageConversionException:无法读取JSON:字符#1,字节#7)处的UTF-32字符0x51473863(高于0x0010ffff)无效;嵌套的例外是java。伊奥。CharConversionException:字符#1,字节#7处的UTF-32字符0x51473863(高于0x0010ffff)无效 在org。springframework。信息。转换器。MappingJackson2MessageConverter。convertFromInternal(MappingJackson2MessageConverter.java:234)~[spring-messaging-5.1.0.BUILD-SNAPSHOT.jar!/:5.1.0.BUILD-SNAPSHOT]

    1 回复  |  直到 8 年前
        1
  •  0
  •   Oleg Zhurakousky    8 年前

    每次都有 MessageConversionException 这仅仅意味着提供的消息转换器无法转换消息。这是正当的,因为我们不能处理每一种情况,只有常见的情况。 因此,您应该实现自定义消息转换器(从头开始或扩展现有的一个)。 下面是有关如何定义自定义消息转换器的更多信息 https://docs.spring.io/spring-cloud-stream/docs/Fishtown.M1/reference/htmlsingle/#spring-cloud-stream-overview-user-defined-message-converters