我正在尝试将 Avro 和 Schema Registry 集成到我们的 Kafka 数据管道中。现在它看起来像 Go 服务内部
获取数据 -> 将数据编码为 JSON -> 写入 Kafka
我想以同样的方式使用 avro 模式
生成模式 -> 在模式注册表中更新模式 -> 获取数据 -> 编码为 Avro -> 写入 Kafka
但是有几个问题:
- 如何自动从 Go 类生成模式?
- 我应该如何检查架构与架构注册表的兼容性?
我正在尝试将 Avro 和 Schema Registry 集成到我们的 Kafka 数据管道中。现在它看起来像 Go 服务内部
获取数据 -> 将数据编码为 JSON -> 写入 Kafka
我想以同样的方式使用 avro 模式
生成模式 -> 在模式注册表中更新模式 -> 获取数据 -> 编码为 Avro -> 写入 Kafka
但是有几个问题:
有几种方法可以从 Avro 创建 go 类。你试过这个https://github.com/actgardner/gogen-avro吗?
用法 要从一个或多个 Avro 模式文件生成 Go 源文件,请运行:
gogen-avro [--package=] [--containers] output_directory avro_schema 文件
Confluent Schema 注册表提供了几种检查模式之间兼容性的方法。您可以在此处查看他们的 API 。还有其他方法可以做到这一点,例如在集成测试期间使用 maven 以确保源代码和其他环境之间的兼容性。你可以在这里找到一些信息。