Thrift RPC Erlang库大量数据时出错的解决

我们项目的各个server之间是使用thrift rpc库来互相rpc的,我们使用的版本是0.9.2, 我制定了统一的消息格式,控制和包装好整个rpc的使用方法,来方便我们服务端的开发人员来使用,一开始因为rpc的数据量很少,所以基本没啥问题, 最近项目有一个大的rpc数据,开发反映rpc库报错,报错如下(用测试的demo工程来再现):

是typeid_to_atom()的参数匹配‘:'出了错,这就奇怪了,减少rpc数据请求量,又正常,在确认使用方法没有问题后,想到的是rpc参数是不是有哪个默认参数有问题,开始想到buffer不够大,去看buffer大小的限制,发现是一个list,这样就没有限制,排除这个原因。 再怀疑是recv timeout太短,默认是60秒,也排除。其它每一个参数都认真检查发现都没问题,这就怪了,这算是一个比较出名的库,应该不会代码有这么明显示的bug没测出来吧,参数反复检查没问题后,只能硬着头皮去看库的代码,花了一天时间,梳理了代码,整条线基本是这样:thrift_client:receive_function_result --> read_result --> handle_reply -->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值