Apache Thrift使用什么序列化框架?

时间:2016-08-03 00:30:30

标签: serialization thrift kryo thrift-protocol

Facebook的Apache Thrift在Java环境中使用什么序列化框架? Java内置序列化还是Kryo,还是其他什么?

编辑:

我看到Thrift有一个名为TSerializer的类似乎实现了TBase,它实现了java.io.serialializable。我可能没有得到正确的订单。

1 个答案:

答案 0 :(得分:1)

Thrift使用自己的机制,在Thrift中说这些被称为Transport。所有语言都是如此,以确保互操作性。其中一个传输是TFileTransport,另一个是受欢迎的传输TSocket

如果你看一下这些代码,你会发现,由于几个原因,通常会非常稀疏地使用四方库。还没有使用可用的内置机制,因为它们通常是特定于语言的东西,因此不能跨语言移植。

Thrift的最重要特征之一就是它的开放性。任何人都可以轻松编写自己的传输或协议实现并将其插入系统。其中一些可以在/contrib文件夹中找到。

  

假设目标环境是Java。它将实现什么序列化方法 - Java的本机序列化?我看到Thrift有一个名为TSerializer [...]

的类

您只需实例化TSerializer并使用它。如果您对协议有特殊要求,请使用替代CTOR,例如传递TJSONProtocolFactory的实例或您需要的任何其他内容。默认情况下,序列化程序采用TBinaryProtocol

然后你只需致电

TSerializer  serializer = new TSerializer();
TBytes data = serializer.serialize( myThriftObject);

并使用data执行任何操作。