动静分离的几种架构方案
1. 实体机单机部署
一致性Hash分组来提升cache命中率。将cache分为若干组希望达到命中率和访问热点的平衡。分组越多,命中率越低,访问热点概率越低;分组越少,命中率越高,访问热点概率越高。
优点:
- 没有网络瓶颈,而且能使用大内存
- 既能提升命中率,又能减少Gzip压缩
- 减少cache失效压力,因为采用定时失效方式,例如只缓存3秒钟,过期自动失效
缺点:
- 一定程度上造成了CPU的浪费,因为单个JAVA应用进程很难用完整个实体机的CPU
- 一台机器上既有Java应用,又有Cache,会造成运维上的复杂度
2. 统一cache层
- 应用接入方便
- cache运维方便
- 共享内存,最大化利用内存
问题
- Cache层内部交换网络成为瓶颈
- 缓存服务器的网卡成为瓶颈
- 机器少 风险大,挂掉一台机器会影响很大一部分数据
要解决上述问题,可以再对Cache进行Hash分组,即一组Cache缓存的内容相同,这样能够避免热点数据过度集中导致新的瓶颈产生。
3. 上CDN
3-