4

我在 tcp 上将 thrift 用于二进制协议,用于发送和读取文件(最大大小为 64MB)。节俭有能力做到这一点吗?

我曾想过使用:

struct SomeMessage {
 1: byte data
}

节俭在这方面的效率如何?编组/解组/通过电线发送?

4

1 回答 1

6

Thrift 是有能力的,推荐的数据类型是binary. 使用byte只会传输一个有符号的 8 位数字,并且list<byte>效率较低。

问题是,将负载负担到 Thrift 服务是否有意义。例如,对于下载,通过传递链接或某事来推迟传输可能更有意义。类似于客户端,并通过其他机制传递(静态)文件。但是,这取决于您的情况,并且当客户端将数据发送到服务器时它可能不起作用。

关于整体效率,可以在 Google 代码上找到一些很好的比较。同样,如果您获得的性能满足您的需求,则取决于问题和您面临的限制。对此没有确定的答案。

于 2014-04-20T23:46:34.350 回答