0

我对 Avro 比较陌生,但我相当确定我已经阅读并进行了足够多的实验以了解它通常是如何工作的。

我正在开发一个 Java 分布式系统,其中 Avro 模式由单个使用者定义。这些模式用于生成 POJO,然后由生产者应用程序导入。由于我们系统的可变发布节奏,不同的生产者应用程序可以使用旧版本的模式生成消息——这就是我们选择 Avro 的原因。

由于我们在单个 Maven 模块中定义和生成模式的方式,我们实际上不需要部署完整的注册表。我们没有需要动态查找模式以进行序列化或反序列化的用例。

我们真正需要的只是一个策略(和工具),它允许我们编写一个由类路径上的模式文件支持的 SchemaStore 的实现。该模块可以返回捆绑到一个 Maven 包中并导​​入到生产者应用程序中。

是否有人知道任何允许我们管理多个版本的模式文件、跟踪版本号并自动生成 POJO 类的方法或工具?

我在想象一些有点像旧的 Maven 版本插件的东西。我们在代码中提交了架构的“当前”版本。当我们想要进行更改时,我们更改此文件,然后运行插件,该插件会自动将其提交为新版本并生成新的 POJO。旧版本被维护并在代码中提交,以便它对 SchemaStore 仍然可用。

值得注意的是,我们没有使用 Kafka 或任何其他类型的流媒体系统。所有消息都使用普通的 REST 端点发送,并使用单对象编码进行序列化(因此它们包含模式指纹)

我希望这一切都有意义。任何帮助将非常感激!

4

0 回答 0