使用带有架构注册表的ruby gem avro turf对数据进行编码时,出现错误“未知关键字:版本”

时间:2019-07-02 08:36:58

标签: ruby avro

我已使用Ruby gem avro_turf将数据转换为二进制并将其发布到Kafka。但是尝试编码数据时出现错误unknown keyword: version。 我已经在localhost:8081上启动了Confluent Schema Registry。我可以在终端上创建和阅读主题。

我扫描其source code,在编码功能中有一个“版本”参数。

我将curl -X GET http://127.0.0.1:8081/subjects/avro-test/versions/1卷曲到Schema Registry并获取此数据

{"subject":"avro-test","version":1,"id":1,"schema":"{\"type\":\"record\",\"name\":\"evolution\",\"namespace\":\"com.landoop\",\"doc\":\"This is a sample Avro schema to get you started. Please edit\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"email\",\"type\":\"string\"}]}"}

这是我当前的代码

require "avro_turf/messaging"

avro = AvroTurf::Messaging.new(registry_url: "http://localhost:8081/")

data = avro.encode('{ "name" => "hello, world", "phone": "01232323", "email": "hello@gmail.com" }', subject: 'avro-test', version: 1)

请帮助我解决问题。

1 个答案:

答案 0 :(得分:1)

  

我扫描了其源代码,编码功能中有一个“版本”参数。

是的,问题是,您正在查看master分支的当前状态。到目前为止,它包含未发布的更改,包括此关键字。

所以要么等待下一个版本发布,要么直接使用master版本

gem "avro_turf", github: "dasch/avro_turf"