V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
WillingXyz
V2EX  ›  程序员

在一个请求执行过程中,多次调用同一个接口,大家都是怎么处理的?

  •  
  •   WillingXyz · 209 天前 · 1204 次点击
    这是一个创建于 209 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 A 调 B 调 C 调 D,每次调用只传递 orderId,然后 BCD 内部需要根据 orderId 获取其他信息,这会导致多次重复调用。
    (之所以只传 orderId 是为了保持接口的简洁和通用)
    大家都是怎么处理这种情况的?
    9 条回复    2021-05-07 11:35:47 +08:00
    wolfie
        1
    wolfie  
       209 天前
    缓存 或 重载。
    iyaozhen
        2
    iyaozhen  
       209 天前
    好像微服务下免不了吧。local cache 下,然后把查 orderId 的服务性能搞好点

    其实也可能是设计问题,理论上不用一直要 orderId 获取信息,实在不行传个 order 对象
    beichenhpy
        3
    beichenhpy  
       209 天前
    BCD 也会提供给外部调用吗?不提供改成传 Order 可能好一些,提供的话可以缓存一层?
    vindac
        4
    vindac  
       209 天前
    ThreadLocal?
    ForkNMB
        5
    ForkNMB  
       209 天前
    缓存啊 用 @Cacheable 给接口包一层代理 缓存数据放 redis 什么的
    jones2000
        6
    jones2000  
       209 天前
    把 A,B,C,D 实现都放在 1 个 API 不就可以了。 给一个参数表示调用路径 如传"A->B->C"。
    catror
        7
    catror  
       209 天前
    下游被重复调用的接口加缓存
    limbo0
        8
    limbo0  
       209 天前
    1. 不影响性能不用在意, 这样接口太多了
    2. 影响性能可以考虑 cache, 或者重写
    clf
        9
    clf  
       208 天前
    重复不可避免,把重复的部分做好缓存。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3799 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:41 · PVG 09:41 · LAX 17:41 · JFK 20:41
    ♥ Do have faith in what you're doing.