在一个请求执行过程中,多次调用同一个接口,大家都是怎么处理的?
- 0次
- 2021-06-02 13:09:08
- idczone
比如 A 调 B 调 C 调 D,每次调用只传递 orderId,然后 BCD 内部需要根据 or国外服务器derId 获取其他信息,这会导致多次重复调用。
(之所以只传 orderId 是为了保持接口的简洁和通用)
大家都是怎么处理这种情况的?
缓存 或 重载。
好像微服务下免不了吧。local cache 下,然后把查 orderId 的服务性能搞好点
其实也可能是设计问题,理论上不用一直要 orderId 获取信息,实在不行传个 order 对象
BCD 也会提供给外部调用吗?不提供改成传 Order 可能好一些,提供的话可以缓存一层?
ThreadLocal?
缓存啊 用 给接口包一层代理 缓存数据放 redis 什么的
把 A,B,C,D 实现都放在 1 个 API 不就可以了。 给一个参数表示调用路径 如传"A->B->C"。
下游被重复调用的接口加缓存
1. 不影响性能不用在意, 这样接口太多了
2. 影响性能可以考虑 cache, 或者重写
重复不可避免,把重复的部分做好缓存。