数据库读写分离
优点:简单有效、降低数据库单台压力;缺点:读写分离,增加程序难度,架构变复杂,维护难度增加;技术点:数据库主从同步部署,扩展数据访问模块,实现读写分离;
5、应用服务集群模式
数据库层面是缓解了,但是应用程序层面也出现了瓶颈,由于访问量增大,加上早期程序员水平有限写的代码也很烂,人员流动性也大,很难去维护和优化。所以,很常用的办法还是"堆机器"。
应用出现瓶颈 负载均衡集群
优点:增加服务器和HA机制,系统性能及可用性得到保证;缺点:应用之间缓存、Session一致性问题;技术点:负载均衡;
通过集群解决高并发、海量数据问题的常用手段,实现系统的可伸缩性。通过负载均衡调度器,可将用户访问分发到集群中的某台 Server 上,应用服务器的负载压力不再成为整个网站的瓶颈。
6、集中式缓存、Session集中存储
加机器谁都会加,关键是加完之后得有效果,加完之后可能会引发一些问题。例如非常常见的:集群应用之间页面输出缓存和本地缓存一致性的问题,Session保存的问题......。
集中式缓存 Session集中存储
优点:应用之间缓存、Session一致,存储无限制,可以扩展;缺点:不如本地缓存访问快,缓存服务器、Session服务器等仍存在单点问题;技术点:缓存服务器部署、Session集中存储方案;
7、动静分离
动静分离也是提高网站响应速度的一种常用方式。将动态请求与静态请求分离开,尽量减少对应用服务器的压力。同时,可以再进一步对静态请求,进行缓存,以加快响应速度。可以需要开发人员配合(把静态资源放独立站点下),也可以不需要开发人员配合(利用7层反向代理来处理,根据后缀名等信息来判断资源类型)。
使用动静分离
优点:减轻应用负载压力,针对静态文件缓存;缺点:静态文件缓存更新失效问题;技术点:动静分离、静态文件缓存方案;
8、反向代理和CDN加速网站响应
使用反向代理和CDN加速网站响应:CDN 和反向代理的基本原理都是缓存,区别在于:
1. CDN部署在网络提供商的机房;
2. 反向代理则部署在网站的中心机房;
使用 CDN 和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。