内部系统如何优雅的管理各种第三方接口

33 天前
 xzour
最近内部系统有非常多的对接第三方的需求,之前只是写了个类,调用第三方接口,第三方事件结束后再调回我方接口。

但是很多第三方接口其实是异步的设计,调用他不是立马返回成功,而是异步执行,完成之后要么我主动调他询问完成状态,要么就是他完成后调用我方接口告诉结果。saas 或者 paas 平台的好多都这种,导致这之间的对接不顺畅,异常也不好排查。

那么内部系统怎么架构,可以更好的管理对接第三方的业务?
2127 次点击
所在节点    程序员
12 条回复
yangtianming
33 天前
相同业务使用模板方法呗
ShineyWang
33 天前
异常排查要靠日志啊
每个客户记录全局 id 区分
AlexTCX
33 天前
可以考虑统一对外发布一个网关,api 都从这个地方走
litchinn
33 天前
事件驱动+路由,但是不清楚你的不顺畅点在于调用还是太多了导致混乱,如果是调用的话感觉没啥办法,调用第三方始终存在着一些网络,服务可用性等因素的影响

dlmy
33 天前
如果项目需要对接非常多的第三方接口,建议做一个统一 API 出口网关,在出口网关中做好接口的路由和处理器的选择。

比如:支持 sync 、async 、oneway 、callback 等各种调用方式,每个调用方式对应着不同的抽象处理器,根据要调用的第三方 API 接口,选择对应的处理器执行即可。

这样,所有跟第三方对接的接口,全部在这个出口网关中进行管理了,再做个可视化的 UI 界面,展示一些调用指标跟监控数据就差不多了。
xzour
33 天前
@yangtianming 谢谢回答,但是不同的第三方属于不同的业务。
xzour
33 天前
@ShineyWang
日志有记,但目前不够完整,还在优化哪些事件要埋点。
xzour
33 天前
@litchinn 太多了导致混乱,有些第三方需要组合几个接口一起才算完成一个业务流程,但是第三方每个接口成功失败,自己处理起来比较混乱,没有好的思路理清。
xzour
33 天前
@dlmy 统一出口网关是我想做的,目前还在构思,但是有个问题,网关各个调用,要不要带某个业务参数,方便失败重连。比如在业务上,ABC 三个接口按顺序调用组合成一个完成的业务流程,然后 ABC 的关系需不需要在网关体现,还是说返回业务系统中反查。
GeekGao
33 天前
还是多年前的 SOA 治理问题
tyzandhr
33 天前
adapter 层呗,设计好 adapter 接口的行为
xzour
32 天前
@GeekGao 是的。一语中的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1032287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX