我已经设置了一个简单的Kafka流Spring启动应用程序。Spring boot正在使用AutoConfiguration为卡夫卡创建工厂。消息是没有消息键的Json消息。使用下面的配置会导致在headers中显示No Type information消息。有什么建议吗?
spring.kafka.streams.properties.default.key.serde=org.apache.kafka.common.serialization.Serdes$StringSerde
spring.kafka.streams.properties.default.value.serde=org.springframework.kafka.support.serializer.JsonSerde
spring.kafka.consumer.properties.spring.json.key.default.type=java.lang.String
spring.kafka.consumer.properties.spring.json.value.default.type=com.abc.xyz.Person
错误
java.lang.IllegalStateException: No type information in headers and no default type provided
at org.springframework.util.Assert.state(Assert.java:73) ~[spring-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.kafka.support.serializer.JsonDeserializer.deserialize(JsonDeserializer.java:353) ~[spring-kafka-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.apache.kafka.streams.processor.internals.SourceNode.deserializeValue(SourceNode.java:63) ~[kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.RecordDeserializer.deserialize(RecordDeserializer.java:66) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.RecordQueue.addRawRecords(RecordQueue.java:97) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.PartitionGroup.addRawRecords(PartitionGroup.java:117) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.StreamTask.addRecords(StreamTask.java:677) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.StreamThread.addRecordsToTasks(StreamThread.java:943) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:831) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:767) [kafka-streams-2.0.1.jar:?]
at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:736) [kafka-streams-2.0.1.jar:?]
发布于 2019-03-20 09:41:14
Streams不使用常规的consumer
属性。
是否有一些文档让您相信在使用streams时需要设置该属性?如果是这样,请打开一个GitHub问题,以便我们可以修复它。
它是
spring.kafka.streams.properties.spring.json.value.default.type=com.abc.xyz.Person
使用streams时。
您不需要key.default.type
,因为您没有JSON key serde。
https://stackoverflow.com/questions/55251744
复制相似问题