如何使用 Apache Thrift 流式传输文件(图像)?我搜索了很多关于 Thrift 的内容,但没有找到任何关于它的写得很好的文档。为什么 Facebook 在没有文档的情况下开源了这个项目?
问问题
1116 次
1 回答
4
我建议的方法是设置您的服务以分块传送数据,如下所示:
struct DataChunk {
1 : binary data
2 : bool haveMoreData
}
service {
DataChunk GetChunk( 1 : string resource, 2: i32 offset, 3: i32 size)
}
size
将值限制在某个合理的值(需要在服务器端检查)似乎是个好主意,或者完全删除size
参数并始终提供固定的、预定义大小的块,以规避客户端请求非常大的数据块。
注意整个流程需要遵循拉取模式,没有内置推送功能。但是,您仍然可以进行推送,您只需要在客户端运行 Thrift 服务器并传递必要的连接信息。虽然这不适用于所有场景(尤其是传输),但它是一个完全可行的解决方案。
于 2014-11-05T09:06:43.193 回答