内部系统如何优雅的管理各种第三方接口 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xzour
V2EX    程序员

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

  •  
  •   xzour 2024-04-14 07:58:54 +08:00 via Android 3029 次点击
    这是一个创建于 598 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近内部系统有非常多的对接第三方的需求,之前只是写了个类,调用第三方接口,第三方事件结束后再调回我方接口。

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

    那么内部系统怎么架构,可以更好的管理对接第三方的业务?
    12 条回复    2024-04-14 23:44:29 +08:00
    yangtianming
        1
    yangtianming  
       2024-04-14 08:17:13 +08:00
    相同业务使用模板方法呗
    ShineyWang
        2
    ShineyWang  
       2024-04-14 11:03:07 +08:00 via Android
    异常排查要靠日志啊
    每个客户记录全局 id 区分
    AlexTCX
        3
    AlexTCX  
       2024-04-14 11:20:04 +08:00
    可以考虑统一对外发布一个网关,api 都从这个地方走
    litchinn
        4
    litchinn  
       2024-04-14 11:56:23 +08:00
    事件驱动+路由,但是不清楚你的不顺畅点在于调用还是太多了导致混乱,如果是调用的话感觉没啥办法,调用第三方始终存在着一些网络,服务可用性等因素的影响

    midsolo
        5
    midsolo  
       2024-04-14 14:05:26 +08:00
    如果项目需要对接非常多的第三方接口,建议做一个统一 API 出口网关,在出口网关中做好接口的路由和处理器的选择。

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

    这样,所有跟第三方对接的接口,全部在这个出口网关中进行管理了,再做个可视化的 UI 界面,展示一些调用指标跟监控数据就差不多了。
    xzour
        6
    xzour  
    OP
       2024-04-14 18:03:00 +08:00
    @yangtianming 谢谢回答,但是不同的第三方属于不同的业务。
    xzour
        7
    xzour  
    OP
       2024-04-14 18:04:06 +08:00
    @ShineyWang
    日志有记,但目前不够完整,还在优化哪些事件要埋点。
    xzour
        8
    xzour  
    OP
       2024-04-14 18:06:31 +08:00
    @litchinn 太多了导致混乱,有些第三方需要组合几个接口一起才算完成一个业务流程,但是第三方每个接口成功失败,自己处理起来比较混乱,没有好的思路理清。
    xzour
        9
    xzour  
    OP
       2024-04-14 18:09:23 +08:00
    @dlmy 统一出口网关是我想做的,目前还在构思,但是有个问题,网关各个调用,要不要带某个业务参数,方便失败重连。比如在业务上,ABC 三个接口按顺序调用组合成一个完成的业务流程,然后 ABC 的关系需不需要在网关体现,还是说返回业务系统中反查。
    R4rvZ6agNVWr56V0
        10
    R4rvZ6agNVWr56V0  
       2024-04-14 19:40:20 +08:00
    还是多年前的 SOA 治理问题
    tyzandhr
        11
    tyzandhr  
       2024-04-14 21:00:27 +08:00
    adapter 层呗,设计好 adapter 接口的行为
    xzour
        12
    xzour  
    OP
       2024-04-14 23:44:29 +08:00 via Android
    @GeekGao 是的。一语中的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4257 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:14 PVG 08:14 LAX 16:14 JFK 19:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86