无法使用Confluent Schema Registry和Spring Cloud Stream反序列化Avro消息

时间:2017-08-22 20:44:30

标签: java apache-kafka avro spring-cloud-stream confluent

我使用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 "永远不会被调用,这是为了解码消息。

1 个答案:

答案 0 :(得分:0)

您使用的是什么版本的SCSt?我们在1.3上与汇合架构注册服务器集成时修复了一些问题。

此外,您不需要设置输入内容类型,通过包含application/vnd*+avro的标题进行解析,该标题包含转换器启动并从服务器中找到正确架构的提示。您只在输出通道上设置该contentType,它将替换为正确的版本,例如:application/vnd.user.v1+avro