kafka:生产商和消费者具有不同的avro文件

时间:2018-07-27 12:56:32

标签: apache-kafka avro kafka-consumer-api kafka-producer-api avro-tools

我正在处理2个不同的avro文件:

avroConsumer

{"namespace": "autoGenerated.avro",
  "type": "record",
  "name": "UserConsumer",
  "fields": [
    {"name": "Name", "type": "string"},
    {"name": "Surname", "type":["null","string"],"default": null},
    {"name": "favorite_number",  "type": ["long", "null"]},
    {"name": "favorite_color", "type": ["string", "null"]}
  ]
}

avroProducer

{"namespace": "autoGenerated.avro",
  "type": "record",
  "name": "UserProducer",
  "fields": [
    {"name": "name", "type": "string"},
    {"name": "favorite_number",  "type": ["int", "null"]},
    {"name": "favorite_color", "type": ["string", "null"]}
  ]
}

在编译过程中会发生反序列化错误,但是我认为在使用者中定义“默认”属性应该可以使其正常工作。
参考:http://avro.apache.org/docs/current/spec.html#Schema+Resolution

  

如果读者的记录模式的字段包含默认值   值,并且作者的架构没有名称相同的字段,   那么读者应该使用其字段中的默认值。

您有什么想法吗?我可以定义与生产者avro文件不同的消费者avro文件吗?

0 个答案:

没有答案