【Java】一次历时两周的排bug经历

公司内部使用的一套自研RPC框架(称为m框架)是基于thrift的。在这个框架下,服务提供者在某个zk服务器(称为注册中心)上注册服务,服务消费者从注册中心消费服务。我负责开发提供者,冯同学负责开发消费者。该bug被冯同学发现。冯同学对该bug的描述:“你们的服务耗时也太久了点,经常性延迟好几秒,有时候十几秒都有,我这边都超时了。你们能不能优化一下速度?”冯同学的描述和我的观察不一致。我当...
摘要由CSDN通过智能技术生成

公司内部使用的一套自研RPC框架(称为m框架)是基于thrift的。在这个框架下,服务提供者在某个zk服务器(称为注册中心)上注册服务,服务消费者从注册中心消费服务。我负责开发提供者,冯同学负责开发消费者。该bug被冯同学发现。

冯同学对该bug的描述:“你们的服务耗时也太久了点,经常性延迟好几秒,有时候十几秒都有,我这边都超时了。你们能不能优化一下速度?”

冯同学的描述和我的观察不一致。我当初刚把这些接口开发完毕进行自测时,响应时间的量级是十毫秒。

遂着手排bug。

排bug的第一步是复现这个现象。万万没想到,复现这个bug花了我好久。

我的资源包括一台开发机macbook和两台测试机(称为s9和s10)。轻车熟路把项目在本地起起来,测了一下接口,响应时间几毫秒。将项目打包并部署到s10上,再次检测,响应时间也是几毫秒。复现bug失败了,我怀疑是网络环境问题,于是请冯同学再次调用一下接口方法测试一下接口速度。冯同学测了之后表示响应速度很快。

↑说实话听到这个结论我是很头大的。如果我测试接口很快,冯同学同时测试接口发现很慢,我就可以把锅甩给网络环境或机器了。但是这件事没发生,说明锅不在网络环境或机器上,那锅就有可能在我身上。

我和冯同学同时调接口方法,发现都很快。我自欺欺人地觉得bug大概率是偶发但持久的网络波动导致的,转头去干别的开发工作了。

一整天相安无事。第二天接到冯同学的抱怨:“又卡起来了啊。”

于是我在开发机上起了一个消费者去调用s10上的方法接口,并在调用前后记录了时间戳。确实,响应速度非常不理想。但是从控制台ping s10是很快的。锅不在网络环境上。我又在自己的开发机上把项目起

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值