ConfluentRESTProxy schem注册表在发送丢失的属性键时不会引发错误

vyswwuz2  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(354)

我在模式注册表中注册了一个模式,如下所示:

{ Prop1:val1,
prop2:val2,
prop3:val3}

以上所有字段都是可选的
当我通过rest代理发送数据负载时,如下所示: { "":val1, Prop2:val2, Prop3:val3 } 我希望模式注册表抛出一个错误。但这并没有发生。数据通过接收器连接器,第一个键/值对被忽略。
这是预期的行为吗?如果属性不存在,我如何强制出错(属性是可选的,但是当我们发送一个空白属性时,它应该抛出一个错误)。

wgx48brx

wgx48brx1#

这似乎是avro中的模式解析。
如果writer的记录包含一个字段,而该字段的名称在reader的记录中不存在,则该字段的writer值将被忽略。
发件人:https://avro.apache.org/docs/1.8.1/spec.html#schema+分辨率
基本上,在我的模式repo inConfluent中-我重新注册了一个模式以获取3个属性-所有属性都是可选的。

{
propA:val1,
propB:val2,
propC:val3
}

如果我发送了一个数据包,其中包含其他属性或注册模式中不存在的属性,那么它们将被忽略。

{
"":val1, //<- considered as new property and ignored
propB:val2,
propC:val3
}

相关问题