我在《Spring的Kafka》的听众那里做反序列化。但这假设类型信息是由SpringKafka制作人包含或发送的。在我的例子中,json是由debezium mysqlconnector发送的,它没有添加这个元数据。所以我想把它添加到请求中。我知道它放在jsonserializer的请求中的某个地方,我查看了源代码,但无法确切地理解如何在序列化过程中将元数据类型一般地添加到请求中。尤其是哪个字段保存此类型信息?是序列化的java对象的类名吗?我认为仅仅设置一个默认的序列化程序是行不通的,因为我有多个消费者在听不同的主题。除了最简单的情况外,设置一个默认值是行不通的,因为我有许多消费者和类型,我正在反序列化。所以这个答案在我的案例kafka中是行不通的-在consumer中反序列化对象
update尝试在反序列化程序上使用方法类型,但存在另一个问题:kafka-spring反序列化程序从未调用returntype静态方法
1条答案
按热度按时间xfyts7mz1#
看见
2组标题(键和值)。
TypeId
是简单的类如果
TypeId
是一个容器List<?>
ContentTypeId
是包含的类型。如果
TypeId
是一个Map
Key_TypeId
是键类型。这允许您重建
Map<Foo, Bar>
.这些头可以包含完全限定的类名,也可以包含通过
classIdMappings
Map。但是,由于版本2.5,使用新的
使用方法确定类型。
这样,您就可以设置自己的头并在方法中检查它们。
编辑
下面是一个简单的例子: