我使用Spring Cloud Stream和Confluent Schema Registry注册Avro架构。
架构已成功注册。但是当我的流监听器收到消息时,有效负载仍然是字节。
这是我的财产。
spring.cloud.stream.schemaRegistryClient.endpoint=http://localhost:8081 spring.cloud.stream.bindings.output.contentType=application/*+avro spring.cloud.stream.schema.avro.dynamic-schema-generation-enabled=true spring.cloud.stream.schemaRegistryClient.cached=true spring.cloud.stream.schema.avro.schemaLocations=classpath*:schemas/*.avsc spring.cloud.stream.bindings.input.contentType=application/*+avro
在接收消息时,我注意到" convertFromInternal " in" AbstractAvroMessageConverter "永远不会被调用,这是为了解码消息。
答案 0 :(得分:0)
您使用的是什么版本的SCSt?我们在1.3上与汇合架构注册服务器集成时修复了一些问题。
此外,您不需要设置输入内容类型,通过包含application/vnd*+avro
的标题进行解析,该标题包含转换器启动并从服务器中找到正确架构的提示。您只在输出通道上设置该contentType,它将替换为正确的版本,例如:application/vnd.user.v1+avro