问题:调用第三方支付接口响应時间超过10秒导致大量线上订单因为超时失败,该接口是实时返回结果的而且不是一直都慢,是偶尔慢
解决方法:调用接口时设置超時时间,当接口超过9秒未返回结果自动将改订单设置为处理中,然后后由定时任务调用查询接口
这样就把,一个实时返回结果的接口当成一个异步的接口来用了,总比一大堆失败订单等着财务来找好
这类问题应该很多,在分布式中接口响应超时的问题尤其重要。佷多时候一个请求,会调用很多service服务如果service之间是串行的话,那么一个service超时很可能会引起连锁反应,所以在调用别的接口的时候(不管昰第三方支付接口还是分布式接口),都需要加一个超时时间超过这个时间,就不在等待了视作失败,或者处理中然后再后续处理。
如何给http请求加超时时间请参考另一篇博客: