比如 A 调 B 调 C 调 D,每次调用只传递 orderId,然后 BCD 内部需要根据 orderId 获取其他信息,这会导致多次重复调用。
(之所以只传 orderId 是为了保持接口的简洁和通用)
大家都是怎么处理这种情况的?
(之所以只传 orderId 是为了保持接口的简洁和通用)
大家都是怎么处理这种情况的?
1
wolfie May 6, 2021
缓存 或 重载。
|
2
iyaozhen May 6, 2021
好像微服务下免不了吧。local cache 下,然后把查 orderId 的服务性能搞好点
其实也可能是设计问题,理论上不用一直要 orderId 获取信息,实在不行传个 order 对象 |
3
zm8m93Q1e5otOC69 May 6, 2021
BCD 也会提供给外部调用吗?不提供改成传 Order 可能好一些,提供的话可以缓存一层?
|
4
vindac May 6, 2021
ThreadLocal?
|
6
jones2000 May 6, 2021
把 A,B,C,D 实现都放在 1 个 API 不就可以了。 给一个参数表示调用路径 如传"A->B->C"。
|
7
catror May 6, 2021
下游被重复调用的接口加缓存
|
8
limbo0 May 6, 2021
1. 不影响性能不用在意, 这样接口太多了
2. 影响性能可以考虑 cache, 或者重写 |
9
clf May 7, 2021
重复不可避免,把重复的部分做好缓存。
|