生产者和消费者avro模式的不同名称空间

2fjabf4q  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(295)

生产者端架构:

{
  "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注解。

ff29svar

ff29svar1#

我发现在avro生成的消息中使用编码器时,如果在使用者端有不同的名称空间,我们就无法解码,因为它在内部使用名称空间的值。唯一的选择是在生产者端使用genericdatumwriter,在消费者端使用genericdatumreader。

相关问题