分布式服务架构:从缓存到分片的深入解析
1. 会话跟踪与应用层复制服务
- IP 会话跟踪的局限性 :基于 IP 的会话跟踪在集群内部(使用内部 IP)可行,但在外部 IP 地址下通常效果不佳,这是由于网络地址转换(NAT)的存在。对于外部会话跟踪,建议使用应用层跟踪,例如通过 cookie 实现。
- 一致性哈希函数 :会话跟踪常通过一致性哈希函数来实现。当服务进行扩展或缩减时,一致性哈希函数的优势就会显现出来。它能最大程度减少因副本数量变化而导致的用户映射副本改变的数量,降低扩展对应用的影响。
- 应用层复制服务 :在之前的示例中,复制和负载均衡在服务的网络层进行,负载均衡独立于 TCP/IP 之外的实际网络协议。然而,许多应用使用 HTTP 作为相互通信的协议,了解应用协议可以进一步优化无状态复制服务模式,以实现更多功能。
2. 引入缓存层
- 缓存的作用 :有时,无状态服务的代码虽然无状态,但执行成本仍然很高,例如可能需要查询数据库、进行大量渲染或数据混合等操作。在这种情况下,缓存层就显得非常有必要。缓存位于无状态应用和最终用户请求之间,对于 Web 应用来说,最简单的缓存形式是缓存 Web 代理。缓存代理是一个 HTTP 服务器,它将用户请求的正确响应保存在内存中。如果两个用户请求相同的网页或 API 调用,只有一个请求会发送到后端,另一个请求将从缓存的内存中获取服务。
- Varnish 缓存
超级会员免费看
订阅专栏 解锁全文
907

被折叠的 条评论
为什么被折叠?



