Thrift中required和optional

最近在搞Thrift,对其字段声明中的required关键字有所误解,仔细调试了一下才明白其真实含义。

required的意思不是说声明对象时,必须填这个值,而是Thrift在传输(序列化)过程中无论你是否赋值,都会将required的字段放入报文中。

而声明为optional的字段,如果你没有赋值,报文中将不会传输(序列化)该字段,有值则会传输(序列化)。

这样做的意义是什么呢?当然是尽量缩短报文,提高效率啦。

 

如果理解有误,还请大湿指出。

 

posted @ 2016-10-25 16:59  Hank蝈蝈  阅读(3797)  评论(1编辑  收藏  举报