C++ grpc stream message size 调整消息大小限制

在工作中遇到了grpc的stream通信(server通过stream向client返回一个消息的stream),client会收不到消息的情况。发现收不到的这个消息比较大,跟同事讨论说可能是grpc限制了消息的大小,通常是4M。网上搜索了一下,大多数是go的解决方案,和C++的接口名称不太一样,其中帮助比较大的是这一篇C++相关的博客http://www.freesion.com/article/475480468/,但是这里面只写了server端的message size设置,在我的代码中这样尝试之后,发现还是不能成功收到消息,最后根据我所用版本的源码,发现client连接时也需要做相关设置。本文给出的方法在我的环境下是可用的,但不确定是不是官方推荐的最佳方法,毕竟我没有找到官方的文档来说明这件事情。。

server端,在启动时对ServerBuilder调用SetMaxSendMessageSize:

  service_ = std::make_unique<MessageBridgeService>();
  builder_ = std::make_unique<grpc::ServerBuilder>();
  builder_->SetMaxSendMessageSize( 10 * 1024 * 1024); // 10M
  builder_->AddListeningPort(FLAGS_service_address,
                             grpc::InsecureServerCredentials());
  builder_->RegisterService(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值