第三方接口总是超时?教你用Gateway重试+降级让服务稳如磐石
前言 之前我们对接了一个第三方支付接口,对方服务不太稳定,经常超时或者返回502。结果就是,用户支付失败率飙升,客服电话被打爆了。 刚开始我们只是在业务代码里加了重试逻辑,但效果不理想。后来在Gateway层统一处理,配合降级兜底,问题彻底解决了。今天就把这套方案分享给大家。 问题背景 在微服务架构中,我们经常需要调用第三方接口,比如支付、短信、物流等。这些接口往往存在以下问题: 服务不稳定:第三方服务经常超时或返回错误 网络抖动:网络质量差导致请求失败 突发流量:第三方服务扛不住突发流量 维护窗口:第三方服务定期维护,暂时不可用 这些问题会导致: 用户体验差,请求失败率高 业务中断,影响核心功能 客服压力大,投诉电话多 运维被动救火,疲于奔命 传统方案 vs 优化方案 传统方案:业务层重试 public PaymentResult pay(PaymentRequest request) { for (int i = 0; i < 3; i++) { try { return thirdPartyPayService.pay(request); } catch (Exce....