发送丢失的属性密钥时,Confluent Rest Proxy Schem注册表不会引发错误

时间:2019-03-04 17:14:49

标签: apache-kafka confluent-schema-registry kafka-rest

我向Schema注册表中注册一个Schema,如下所示:

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

以上所有字段均为可选

当我通过Rest Proxy发送数据有效载荷时,如下所示:

{ "":val1, Prop2:val2, Prop3:val3 }

我希望架构注册表抛出错误。但这没有发生。数据通过接收器连接器,第一个键/值对将被忽略。

这是预期的行为吗?如果属性不存在,如何强制错误(该属性是可选的,但是当我们发送空白属性时,它应该引发错误)。

1 个答案:

答案 0 :(得分:0)

这似乎是Avro中的架构解析。

  

如果作者的记录包含一个字段,而该字段的名称不存在   读者记录,该字段的作者值将被忽略。

来自: https://avro.apache.org/docs/1.8.1/spec.html#Schema+Resolution

基本上在我的架构仓库中,它们合而为一-我要求架构具有3个属性-所有都是可选的。

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

如果我发送的数据包具有其他属性或未在注册架构中充斥的属性,则它们将被忽略。

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