将 kafka-avro-console-producer 与架构注册表中已有的架构一起使用

Art*_*hur 8 avro apache-kafka confluent-schema-registry

我想将kafka-avro-console-producer与架构注册表一起使用。我有大模式(超过 10k 个字符),我不能真正将它们作为命令行参数传递。除此之外,我想直接使用架构注册表,以便我可以使用特定的架构 ID。

我正在考虑这样的事情,但它不起作用:

kafka-avro-console-producer \
 --broker-list <broker-list> \
 --topic <topic>  \
 --property schema.registry.url=http://localhost:8081 \
 --property value.schema=`curl http://localhost:8081/schemas/ids/419`
Run Code Online (Sandbox Code Playgroud)

cri*_*007 13

对于当前版本的 CLI 工具

kafka-avro-console-producer \
 --broker-list <broker-list> \
 --topic <topic>  \
 --property schema.registry.url=http://localhost:8081 \
 --property value.schema.id=419
Run Code Online (Sandbox Code Playgroud)

对于旧版本

例如,您需要使用 jq 从 API 请求中提取架构

value.schema="$(curl http://localhost:8081/schemas/ids/419 | jq -r .schema)"
Run Code Online (Sandbox Code Playgroud)


mat*_*sfk 7

您可以使用该属性value.schema.id

kafka-avro-console-producer \
 --broker-list <broker-list> \
 --topic <topic>  \
 --property schema.registry.url=http://localhost:8081 \
 --property value.schema.id=419
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的建议。不幸的是,它不适用于我的“kafka-avro-console- Producer”版本,我怀疑它太旧并且不支持它。 (2认同)