【问题标题】:Avro schema versioningAvro 模式版本控制
【发布时间】:2018-12-26 11:07:37
【问题描述】:

抱歉,这是一个 AVRO 初学者问题。

我的 Java 微服务接受具有模式版本元素的有效负载请求,该有效负载可以有多个不同版本,每个版本的格式略有不同。是否可以使用该版本号对 AVRO 模式注册表进行查找,然后使用该模式来验证接收到的有效负载。

这是一个有效且可能的 AVRO 用例吗?

然后打算在继续发送之前在 Java 微服务中处理这些数据。

也许 AVRO 不是正确的技术,但如果不是,请告知。

【问题讨论】:

    标签: java apache-kafka avro


    【解决方案1】:

    使用该版本号查找 AVRO 架构注册表

    注册表中的 Avro 架构 ID 是一个递增的数字,而不是您的数据真正可索引的东西。

    我认为您正在寻找的只是一个版本 ID,Confluent Avro Schema Registry 支持

    GET /subjects/:name/versions/:id
    

    【讨论】:

    • 我有一个相关的后续问题。我在这里没有将 AVRO 与 Kafka 结合使用,而是将其用于 JSON 对象类型验证。可以这样做吗,谢谢?
    • 您可以在 AFAIK 主题中使用 JSON 或 Avro 或任何其他数据格式。使用 Confluent Avro 序列化程序时保留向后兼容的消息更容易
    • 我要问的是我这里没有使用 Kafka。我问的是仅使用 AVRO 模式来验证本地 POJO,然后将该数据传递到其他地方。这可能吗?感谢您到目前为止的帮助。
    • 不过,您用 Kafka 标记了您的问题……而且我所知道的唯一“架构注册表”需要安装 Kafka。
    • 在任何情况下,您都可以使用 Avro Maven 插件从 Avro 模式创建 POJO。我真的不明白您在做什么“验证”,但您可能可以使用任何数据格式与其他任何数据格式进行比较。不太清楚为什么您认为需要使用 Avro
    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多