项目场景:
提示:这里简述项目相关背景:
今天采用golang创建了一个http服务,准备对若干接口进行测试。
问题描述
提示:这里描述项目中遇到的问题:
在测试第一个接口时,发现采用postman调用接口时不时的出现Error: socket hang up错误,页面没有任何返回,但是偶尔又能正常返回数据。
原因分析:
提示:这里填写问题的分析:
看到这个问题,首先怀疑是服务不稳定,排查程序是否存在卡顿的情况,通过debug排除了该原因。后来无意中发现在http.Server中的ReadTimeout属性值有误。
ReadTimeout和WriteTimeout属性都是 time.Duration类型的,所以不能直接使用整数60来赋值。
解决方案:
提示:这里填写该问题的具体解决方案:
将ReadTimeout和WriteTimeout属性值设置为60 * time.Second,重启服务,重新检测接口,接口正常返回结果,搞定。