动静分离的几种架构方案

1. 实体机单机部署

一致性Hash分组来提升cache命中率。将cache分为若干组希望达到命中率和访问热点的平衡。分组越多,命中率越低,访问热点概率越低;分组越少,命中率越高,访问热点概率越高。image.png
优点:

  • 没有网络瓶颈,而且能使用大内存
  • 既能提升命中率,又能减少Gzip压缩
  • 减少cache失效压力,因为采用定时失效方式,例如只缓存3秒钟,过期自动失效

缺点:

  • 一定程度上造成了CPU的浪费,因为单个JAVA应用进程很难用完整个实体机的CPU
  • 一台机器上既有Java应用,又有Cache,会造成运维上的复杂度

2. 统一cache层

  • 应用接入方便
  • cache运维方便
  • 共享内存,最大化利用内存

问题

  • Cache层内部交换网络成为瓶颈
  • 缓存服务器的网卡成为瓶颈
  • 机器少 风险大,挂掉一台机器会影响很大一部分数据

要解决上述问题,可以再对Cache进行Hash分组,即一组Cache缓存的内容相同,这样能够避免热点数据过度集中导致新的瓶颈产生。

3. 上CDN

3-