gpt4 book ai didi

go - 从客户端向服务器发送大量数据

转载 作者:IT王子 更新时间:2023-10-29 01:38:23 25 4
gpt4 key购买 nike

我正在使用 GoGrpc。我有一个 XML 文件要从客户端发送到服务器。当服务器调用客户端上的方法时,客户端会返回一个 XML 文档,其范围从几 kB 到 100s MB 甚至更多。请帮我看看我该怎么做?我应该

  1. 将值分配给 string 变量并正常发送 -> rpc GetCMData (CmRequest) 返回 (CmReply) {}
  2. 将值分配给 string 变量并作为 stream 发送 -> rpc GetCMData (CmRequest) returns (stream CmReply) {}
  3. 还有其他更好的方法吗?

这就是 CmReply 的样子:

message CmReply {
string name = 1;
}

最佳答案

第二个更像是你想走的路。但还有一点:您确定要在 RAM 中拥有这数百兆字节吗?我不是 Go-Geek,但我通常更喜欢处理文件流。并且可能实现类似背压系统的东西。

如果您使用流:我还会实现一些措施来确保您可以处理流中断。假设您有一半的流,并且流中断了。您不想重新开始并获取客户端已有的所有先前流元素。您再次冒着流中连接中断的风险。也许在同一点。所以,类似于分页。假设

message CMRequest{
int startAt = 0;
}

message CmReply {
string id = 0;
string name = 1;
}

如果流中断,您将使用 startAt= LastCmReply.id+1 发送新请求

这是 grpc 中一些良好实践的视频:https://www.youtube.com/watch?v=Z_yD7YPL2oE&index=17&list=WL

关于go - 从客户端向服务器发送大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com