我应该通过GRPC传输大数据集,而不需要手动分块吗? [英] Should I transmit large data sets via gRPC without manual chunking?

查看:13
本文介绍了我应该通过GRPC传输大数据集,而不需要手动分块吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用GRPC公开一个接口,用于在两个服务之间双向传输大型数据集(~100MB)。由于GRPC在默认情况下将消息大小限制为4 MB,因此,执行此操作的首选方法似乎是手动编码块流,并在接收端重新组装它们[1][2]。

但是,GRPC还允许通过grpc.max_receive_message_lengthgrpc.max_send_message_length增加消息大小限制,从而可以直接传输最大~2 GB的消息,而无需任何手动分块或流媒体。快速测试表明,这种更简单的方法在性能和吞吐量方面同样有效,这使得它看起来更适合这个用例。假设内存中需要整个数据集。

这些方法中的一种天生就比另一种好吗?更简单的非分块方法是否有潜在的副作用?我能否依靠较低层依赖于MTU的碎片来避免网络延迟和其他障碍?


引用:

  1. Chunking large messages with gRPC
  2. Sending files via gRPC

推荐答案

4 MB限制是保护未考虑邮件大小限制的客户端/服务器。GRPC本身可以更高(100 MB),但大多数应用程序可能会受到微不足道的攻击,或者意外地耗尽内存,从而允许如此大小的消息。

如果您希望一次收到100 MB的邮件,则可以增加限制。

这篇关于我应该通过GRPC传输大数据集,而不需要手动分块吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆