可靠地调用第三方
调用第三方服务可能看起来很简单:只需要发起一个HTTP请求即可!
实际上,如果真这样去做,迟早会出现各种稳定性或者数据不一致的问题,因为:
- 网络有可能偶尔中断,HTTP调用就会失败。
- 第三方可能在更新或者重启或者崩溃了,HTTP调用出现失败。
最麻烦的是:这种失败不是简单的 for循环+重试就能解决,因为不知道故障会持续多久!
调用第三方通常有2大场景:
- 即时调用(同步等待调用):需要立即获取结果,然后继续执行
- 当前任务执行结束,【通知】第三方做相应处理
解决办法:
以上2种方法都依赖于 MQ 和 消息管道,差别:
- 前者:开发简单,但是需要多部署一个服务以及相关配置
- 后者:灵活度高