对于 AvroProducer 到 Kafka,“键”和“值”的 avro 模式在哪里?

Kod*_*lie 6 apache-kafka kafka-python kafka-producer-api

confluent-kafka-python repo 中AvroProducer示例来看,键/值模式似乎是从文件中加载的。也就是说,从这段代码:

from confluent_kafka import avro 
from confluent_kafka.avro import AvroProducer

value_schema = avro.load('ValueSchema.avsc')
key_schema = avro.load('KeySchema.avsc')
value = {"name": "Value"}
key = {"name": "Key"}

avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}, default_key_schema=key_schema, default_value_schema=value_schema)
avroProducer.produce(topic='my_topic', value=value, key=key)
Run Code Online (Sandbox Code Playgroud)

看来这些文件ValueSchema.avscKeySchema.avsc是独立于 Avro Schema Registry 加载的。

这是正确的吗?引用 Avro 架构注册表的 URL,然后从磁盘加载键/值的架构有什么意义?

请说清楚。

wik*_*ikp 0

查看代码考虑注册表中的模式是消费者而不是生产者需要的。MessageSerializer 会在架构注册表中为您注册架构:)