我在Kafka的制作人那个里工作,推动主题中的信息。我用的是融合的Kafka。
github上的喜欢问题
下面是我的模式。avsc文件。
Keys.avsc
{
"namespace": "io.codebrews.schema.test",
"type": "record",
"name": "Keys",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "email",
"type": "string"
}
]
}
测试.avsc
{
"namespace": "io.codebrews.schema.test",
"type": "record",
"name": "Subscription",
"fields": [
{
"name": "test",
"type": "string"
},
{
"name": "keys",
"type": "io.codebrews.schema.test.Keys"
}
]
}
生产者.py
key_schema, value_schema = load_avro_schema_from_file('Subscription.avsc')
try:
producer = avro.AvroProducer(producer_config, default_key_schema=key_schema, default_value_schema=value_schema)
except Exception as e:
raise e
def load_avro_schema_from_file(schema_file):
key_schema_string = """
{"type": "string"}
"""
key_schema = avro.loads(key_schema_string)
value_schema = avro.load("./avro/" + schema_file)
return key_schema, value_schema
当我尝试注册Keys.avsc
时,它工作正常,没有错误。但是当我尝试注册Test.avsc
之后注册Keys.avsc
。我得到以下错误。
confluent_kafka.avro.error。ClientError:架构分析失败:未知的命名架构“io.codebrews.Schema.test”。键,已知名称:[“io.codebrews.schema.test.Subscription”]。
手动注册架构后。
{
"namespace": "io.codebrews.schema.test",
"type": "record",
"name": "Subscription",
"fields": [
{
"name": "test",
"type": "string"
},
{
"name": "keys",
"type": "Keys"
}
]
}
当在我的主题推送消息时,我得到以下错误。
ClientError:不兼容的Avro架构:409消息:{error\u code:409,'消息':'正在注册的架构与主题“测试值”的早期架构不兼容。
我做错什么了吗?
还有谁能帮我停止python中的自动模式注册吗?
错误与解析器有关,而与注册表注册无关。。。
您的AVSC文件需要完全包含所有记录类型。当解析器读取一个文件时,它无法了解其他文件
如果您从一个AVDL文件开始,然后将其转换为AVSC,那么这些记录会正确地嵌入到外部记录中。
具体来说,
"fields" :[{
"name": "keys",
"type": {
"type": "record",
"namespace": "io.codebrews.schema.test.Keys",
...
}
}
嘿,我想将ConFluent模式注册表与Avro Serializers一起使用:留档现在基本上是说:不要为多个不同的主题使用相同的模式 谁能解释一下原因吗?我重新搜索了源代码,它基本上将模式存储在Kafka主题中,如下所示(topicname,magicbytes,version- 因此,除了冗余之外,我看不到多次使用模式的问题?
我有以下对象: Bu 有时我只是我正在尝试为此提出一个架构。但它似乎:(不起作用。 我尝试了以下两种: 但它失败了,线程“main”org.apache.avro中出现<code>异常。SchemaParseException:无类型: 我也尝试了同样的错误: 我真的不明白问题出在哪里,两者有什么区别。
我正在尝试使用kafka-avro-convore-生产者发布一条具有键(带有模式)和值(带有模式)的消息。kafka环境(kafka的conFluent 6.2.0版本、连接、zoomaster、模式注册表)都正确启动,我可以确认我的连接器已安装。问题是当我发送消息时,我的Sink连接器失败并出现我无法诊断的错误。 感谢您的帮助: 我生成一条AVRO消息,如下所示: 并在连接日志中接收以下错误:
我有一个docker容器运行AWS弹性容器服务(Fargate)中的confluentinc/cp模式注册表:5.5.0。只有一个容器正在运行。通过该模式注册表获取当前注册模式的API调用正在工作(例如,
我有Kafka的以下配置 我试图通过版本得到主题,我得到如下 我使用插件<;代码>;avro-maven插件>;生成>;CreateBankAccount>;代码< 然后,我用一个字符串键和一个avro序列化的有效负载向主题推送一条消息,但是我有一个错误 轨道: ProducerConfig值: KafkaAvroSerializerConfig值:
我有openapi合同: 在此结构中: 在主s.json我有一些参考另一个json这样: 当我尝试使用openapi-Generer-maven-plugin打包它时: 我得到一个警告和构建错误: openapi可以像我一样使用ref生成代码吗?或者我需要重构json模式并删除这个ref?也许将其连接在一个文件中或类似的东西中