“没有为”Thrift发电机警告“指定字段键

时间:2015-01-05 15:51:20

标签: thrift

获得警告:

  

没有为字节指定字段键,导致协议可能有   冲突或不向后兼容!

尝试生成以下行时:

void uploadChunk(binary bytes)

我尝试了其他几个参数名称,并且无法使用Google搜索找到有关此警告的信息。

想法?

3 个答案:

答案 0 :(得分:5)

哦,我在1:之前添加了binary,警告消失了:

void uploadChunk(1:binary bytes)

Thrift可能生成一些需要字段密钥的语言,1是字段密钥。

答案 1 :(得分:2)

要添加JensG的答案是正确的,下面将解释自动分配字段编号可能导致不兼容的原因:

如果服务器正在运行具有三个未编号参数的Thrift接口,并且客户端运行的旧版本的接口只有两个未编号的参数,则服务器可能无法正确关联提供给可用参数的值。如果它们被编号,则没有混淆。编号是支持所谓schema evolution的好主意。

答案 2 :(得分:1)

应用数字字段键(或字段ID)的解决方案绝对正确。

为了兼容性,Thrift允许没有ID的字段。在内部,为这些字段分配负数。但是,强烈建议您指定字段ID > 0,因为如果您在给定成员之前包含更多成员,或者如果您在成员周围洗牌,则自动分配的数字可能会更改由于不同的自动编号字段导致不兼容。

这正是警告的原因。