首页 文章

如何使用spring boot和spring cloud stream在kafka制作者上设置avro内容类型

提问于
浏览
0

尝试使用spring boot,spring cloud stream schema registry,kafka binder,与avro消息 生产环境 者,kafka和avro消费者一起构建工作示例 . 尝试使用消息时出错:

ERROR 7059 --- [afka-listener-1] oscsbkKafkaMessageChannelBinder:无法使用contentType [application / x-java-object; type = io.igx.android.Sensor] java反序列化[io.igx.android.Sensor] .lang.NullPointerException

我在使用者端有spring.cloud.stream.bindings.output.contentType = application / avro,在 生产环境 者端有spring.cloud.stream.bindings.output.contentType = application / avro .

为什么消费者没有看到和使用avro内容类型而不是application / x-java-object .

2 回答

  • 0

    我认为你需要 生产环境 者方面的内容类型 application/*+avro . (注意*前缀) . 为 生产环境 者设置后,您是否可以确认是否仍需要为使用者指定输入contentType . 我认为消费者可以根据制作人设定的内容类型推断出它 .

  • 0

    Channels 名称错了 . 问题是我使用的是spring.cloud.stream.bindings.input.contentType = application / * avro

    而不是这个

    spring.cloud.stream.bindings . .contentType = application / * avro .

    当我将改为我用过魔法的名字时 .

    即使我没有在消费者方面指定内容类型,它仍然有效 .

    另外,我需要指定spring.cloud.stream.schemaRegistryClient.endpoint,如果它不是默认值,就像我的情况一样,在 生产环境 者和消费者方面 .

相关问题