那如何保持应用服务器中数据缓存信息的同步呢?例如: 之前缓存的用户数据等,这个时候通常会开始使用缓存同步机制以及共享文件系统或共享存储等 。在享受了一段时间的访问量高速增长后,系统再次变慢 。
文章插图
开始数据库调优,优化数据库自身的缓存,接下来是采用数据库集群以及分库分表的策略 。
分库分表的规则是有些复杂的,考虑增加一个通用的框架来实现分库分表的数据访问,这个就是数据访问层(Data Access Layer,DAL) 。
- 缓存同步机制:每台web服务器,都会是保存一份缓存文件,那数据之间就需要缓存的同步机制来完成 。
- 共享存储:共享存储是指两个或多个处理器共用一个主存储器的并行体系结构,像redis 。
- 共享文件系统:两台机器之间的文件系统能够更加紧密地结合在一起,让一台主机上的用户可以像使用本机的文件系统一样使用远程机的文件系统 。像Samba和NFS 。
于是分布式缓存终于来了,将大量的数据缓存转移到分布式缓存上 。
如果使用共享文件系统或共享存储有啥问题?
- 共享存储:多个服务访问一个存储,那么容易造成单例性能不足的问题和 。如果是并发读写可能会导致缓存和数据不一致问题 。
- 共享文件: 多个服务压力太大,因文件I/O开销大 。性能会导致下降 。最终 至此,系统进入了无级缩放的大型网站阶段,当网站流量增加时,应对的解决方案就是不断添加Web服务器、数据库服务器、以及缓存服务器 。此时,大型网站的系统架构演变为图所示 。
文章插图
纵观网站架构的发展历程,缓存技术往往就是解除烦恼的灵丹妙药,这再次证明了什么是缓存为王 。
客户端缓存的实施方案客户端缓存相对于其他端的缓存而言,要简单一些,通常是和服务端以及网络侧的应用或缓存配合使用 。
在互联网应用中,根据应用区分有二大类 。
- B/S架构:页面缓存和浏览器缓存
- 移动应用:APP自身所使用的缓存 页面缓存 页面缓存是什么?
页面缓存有两层含义: - 客户端将页面自身对某些元素或全部元素进行缓存 。简称离线应用缓存
- 服务端将静态页面或动态页面的元素进行缓存,然后给客户端使用 。简称页面自身缓存 。
随着单页面应用(Single Page Application,SPA)的广泛使用,加之html5支持了离线缓存和本地存储,大部分BS应用的页面缓存都可以举重若轻了 。
在HTML5中使用本地缓存的方法,示例代码如下:
localStorage.setItem("mykey","吒吒辉")localStorage.getItem("mykey","吒吒辉")localStorage.removeItem("mykey")localStorage.clear()
什么是单页面应用?
SPA是在 Web 设计上使用单一页面,利用 JAVAScript 操作 Dom 的技术实现各种应用 。此模式下一个系统只加载一次资源,之后的操作交互、数据交互是通过路由、ajax来进行,页面并没有刷新 。
【缓存只会用!缓存架构没听过?分布式多级缓存大瓶装,你拎包带走】常见的路由形式如:http:.//xxx/shell.htm1#page1 。
一般在Vue下使用很明显 。像商城活动页、登录页这种都是很好的SPA落地实践 。
推荐阅读
- 穿衣搭配|喜欢上了女同事,只需这样追求她,轻松拿下
- 除湿减肥只需巧动身体一个部位
- 和孝固伦公主是谁的女儿 固伦和静公主为什么只活了20岁
- 像一只思考的鲸头鹳那样走走逛逛 鲸头鹳为什么要拔毛送人
- Windows 10默认已禁用USB驱动器缓存 1903版本起无需点击安全弹出
- 只做技术的程序员后来都怎么样了?值得深思
- 李自成真的只要求崇祯封王吗 李自成会杀崇祯皇帝吗
- 骁龙|为什么游戏手机都只用骁龙平台?知道真相的我竟无法反驳
- 华为防火墙配置上网行为管理,禁止上网,只允许邮件、微信和钉钉
- 只需开启电脑这个设置,即可实现快速分屏