Apache Thrift 最大消息大小

7
我们正在使用Apache Thrift在两个系统之间交换消息。其中一个消息中,我们正在交换一个可能非常大的列表(c ++)。请问您能告诉我使用Apache Thrift可以交换的最大消息大小是多少吗?

“huge” 究竟是什么意思? - JensG
目前我们正在交换一个结构列表(每个大小为100字节)。这可以扩展到大小为500或更多的列表(>50KB)。 - user1732768
1个回答

5

并没有明确的“固定”限制(至少我不知道有任何限制)。这主要取决于数据在内存中的存储方式,服务器负载情况和可用资源量。就大部分而言,连续的内存块(RAM)很可能成为最稀缺的资源,所以我们应重点关注此点。

“数据在内存中的存储方式”是指,为了更好的吞吐量,某些传输方式(缓冲、帧)倾向于分配更多的内存和更大的块,具体情况取决于语言实现过程中的效率和内存成本。

如果您真的计划传输大块数据,您还应该考虑其他选项,如:

  • 将数据分块
  • 通过服务仅发送/返回URL或局域网共享,而不是整个数据

在Thrift的上下文中,“将数据分块”以便发送/接收数据是否有一种规范的方法?谢谢! - blong
1
不,你完全可以按照你需要的方式实现它;-) - JensG
好的,很公平! :) - blong
我仍然有发送大块 ... 300kbytes 的问题... 如果我只发送10kbyte,则上传非常缓慢。如果我发送大块,则服务似乎会冻结调用,甚至无法到达服务器代码。我在10kbytes中没有问题,但在本地网络中发送速度较慢。 - LittleFunny
很难说...我可能会尝试使用Wireshark或类似的工具来找出这里发生了什么(或者没有发生什么)。 - JensG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接