一、架构层面
1、硬件升级
假设一台服务器最多能支持每天10万独立IP,如果访问量增大的话,那么必须升级这台服务器的配置才能解决问题,否则怎么优化都不可能彻底解决性能问题。
2、负载均衡
它是对多台云服务器进行流量分发的负载均衡服务,让整个服务器群来处理网站的请求。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
3、服务器集群
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
4、分布式结构
分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”.这些子系统能够独立运行在web容器中,它们之间通过RPC方式通。
二、网站本地项目层面
1、页面静态化
前台实现完全的静态化最好,可以完全不用访问数据库。这样服务器的压力就减轻了不少。
2、缓存技术(Memcache、Redis等)
缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用 这些文件,而不必再访问数据库。
3、数据库优化
-
a.数据库分表技术
当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,很有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 -
b.数据库读写分离
数据库读写分离的基本原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。 -
c.表建立相应的索引
使用索引可快速访问数据库表中的特定信息。
4、CDN
将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
5、禁止盗链
外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链。
6、控制大文件的上传下载
大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗 CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在专门的存储空间上(对象存储OSS/COS)。