是
接收 key --> 检查是否被缓存 -----> 返回缓存值 ⑴
| 否 是
|-----> 是否应当从远程节点获取 -----> 与远程节点交互 --> 返回缓存值 ⑵
| 否
|-----> 调用`回调函数`,获取值并添加到缓存 --> 返回缓存值 ⑶
- 采用LRU缓存淘汰策略,通过加锁实现并发安全
- 基于HTTP实现分布式缓存,使用一致性哈希选择节点,实现负载均衡
- 使用singleflight的锁机制防止缓存击穿