如何在Go中自动生成Avro架构?

时间:2018-06-01 14:56:33

标签: go apache-kafka avro confluent-schema-registry

我试图将Avro和Schema Registry集成到我们的Kafka数据管道中。现在它看起来像

这样的Go服务

获取数据 - >将数据编码为JSON - >写信给卡夫卡

我想以相同的方式使用avro架构

生成架构 - >在架构注册表中更新架构 - >获取数据 - >编码为Avro - >写信给卡夫卡

但有几个问题:

  1. 如何自动从Go类生成模式?
  2. 我应该如何检查架构与Schema Registry的兼容性?

1 个答案:

答案 0 :(得分:0)

有一些替代方法可以从Avro创建go类。你试过这个https://github.com/actgardner/gogen-avro吗?

  

用法从一个或多个Avro架构文件生成Go源文件,   运行:

     

gogen-avro [--package =] [--containers] output_directory avro_schema files

Confluent Schema注册表提供了几种检查模式之间兼容性的方法。您可以查看他们的API Here。还有其他方法可以做到这一点,例如在集成测试期间使用maven来确保源和其他环境之间的兼容性。您可以找到一些信息here