1
IvanLi127 2022-08-15 00:39:41 +08:00 via Android
这。。。大概可以理解成:
在 A 时预加载 B 的数据,并在 B 被调用时使用这个数据。 你可以让客户端或者 A 所在服务调用 B 所在服务,或者通过消息队列通知给 B 所在的服务。 然后,你只要在 B 服务实现预加载或者是缓存功能就好了。 |
3
maxthon OP 可以认为 A 和 B 在同一个 web service 中,但是这个 service 会有很多 server (或者 instance )
|
4
libook 2022-08-15 10:41:16 +08:00 1
既然已经跨实例了,就已经脱离语言本身的范畴了,需要使用系统架构来满足需求。
你得到了 redis pub/sub 的方法,就直接用这个方法呗。 |
5
lmshl 2022-08-15 12:12:42 +08:00 1
建议负载均衡层面根据 token 做 sticky session ,这样就能保证客户端短时间请求始终转发到同一个 instance 中去了。
内存里用 Map 简单缓存一下这个 Promise ,记得把时间也记录下来,定期清理掉过期的 Promise 防止泄漏 |
6
lmshl 2022-08-15 12:14:25 +08:00
在这个基础上再实现一个 fallback 机制,极端情况下,前一个 instance 凑巧被杀死了,后一个缓存里读不到 Promise 的时候还是需要走全流程
|