生产者端架构:
{
"type":"record",
"name":"ClientIdentifier",
"namespace":"namespace1",
"fields":[
{
"name":"data",
"type":"string"
}
]
}
用户端架构:
{
"type":"record",
"name":"ClientIdentifier",
"namespace":"namespace2",
"fields":[
{
"name":"data",
"type":"string"
}
]
}
两者都有不同的名称空间。如何使它们相互兼容。
我正在使用生成的avro类中的编码器和解码器进行序列化和反序列化。
另外,我还在springboot的consumer中使用@kafkalistener注解。
1条答案
按热度按时间ff29svar1#
我发现在avro生成的消息中使用编码器时,如果在使用者端有不同的名称空间,我们就无法解码,因为它在内部使用名称空间的值。唯一的选择是在生产者端使用genericdatumwriter,在消费者端使用genericdatumreader。