我已使用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)
请帮助我解决问题。
答案 0 :(得分:1)
我扫描了其源代码,编码功能中有一个“版本”参数。
是的,问题是,您正在查看master
分支的当前状态。到目前为止,它包含未发布的更改,包括此关键字。
所以要么等待下一个版本发布,要么直接使用master版本
gem "avro_turf", github: "dasch/avro_turf"