尝试使用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 回答
我认为你需要 生产环境 者方面的内容类型
application/*+avro
. (注意*前缀) . 为 生产环境 者设置后,您是否可以确认是否仍需要为使用者指定输入contentType . 我认为消费者可以根据制作人设定的内容类型推断出它 .Channels 名称错了 . 问题是我使用的是spring.cloud.stream.bindings.input.contentType = application / * avro
而不是这个
spring.cloud.stream.bindings . .contentType = application / * avro .
当我将改为我用过魔法的名字时 .
即使我没有在消费者方面指定内容类型,它仍然有效 .
另外,我需要指定spring.cloud.stream.schemaRegistryClient.endpoint,如果它不是默认值,就像我的情况一样,在 生产环境 者和消费者方面 .