我们用于avro对流经消息代理的消息进行(反)序列化。为了存储 avro 文件,使用了模式注册表 ( apicurio )。这提供了两个好处 - 模式验证和兼容性验证。但是,我想知道是否有一种方法可以绕过模式注册表并使用脚本/插件在本地实现相同的目的。验证 avro 文件在语法/语义上是否有效应该是可能的。这同样适用于兼容性验证,因为检查新的模式版本是否与其他模式(以前的版本)列表向后/向前兼容在本地听起来也是可行的。
有图书馆可以做到这一点吗?理想情况下是 gradle 插件,但 java/python 库也可以,因为它可以轻松地从 gradle 任务调用。
我找不到一个插件可以满足您的要求。插件似乎旨在从架构文件生成类(即https://github.com/davidmc24/gradle-avro-plugin)。在不了解为什么要这样做的情况下,我认为您可以使用这种简单的方法(如何从 Gradle 调用静态 Java 方法)将自定义代码挂接到 Gradle 中并检查架构有效性和兼容性。
请参阅以下 Avro Java API:
检查这个特定的类也有助于针对模式执行验证:
| 归档时间: |
|
| 查看次数: |
3726 次 |
| 最近记录: |