假设我使用 avro-tools 为“mySchema”的 v2 生成代码,并且一条消息出现在使用“mySchema”的 v1 编写的队列中。如果我理解正确,处理这种情况的最佳方法是意识到消息是使用“mySchema”的 v1 编写的,使用模式注册表获取 v1 模式,并使用 v1 反序列化消息。
此时,是否有可能以某种方式将结果对象转换为 avro-tools 为 v2 生成的代码中的相应字段和对象?
到目前为止,看起来处理消息的唯一方法会导致“GenericRecord”,它需要字符串键来访问字段的值。我更喜欢为 v2 使用生成的代码,并将任何拼写错误变成编译错误而不是运行时错误,在编码时知道值的数据类型,并避免设置一堆枚举来包含字符串键。