今天看了一下关于高并发网站的架构方案,记录一下:
1.多台服务器支撑业务系统水平扩展
只要业务系统可以随时水平扩展,这样的架构理论上可以扛住任意流量的访问。
可以选用传统的负载均衡技术来进行流量分发,支撑多服务器。常用的负载均衡技术硬件的如F5,价格比较贵;软件的有LVS、Nginx、HAProxy。但是自己搭建并维护这套系统,会是非常挑战的事情。
您也可以选用阿里云提供的负载均衡来完成这项工作,较传统技术更简单易用,且能降低60%的成本。负载均衡能够根据应用负载进行弹性扩容,并在流量波动情况下不中断对外服务;其冗余设计,可使服务可用性达99.99%。
2.通过CDN加速全国用户的静态文件访问
假如应用的服务器是部署在北京机房,则北京的用户访问是较快的,而广州的用户访问则相对较慢,这是由于广州和北京分别属于不同地区,广州用户访问需要通过互联路由器经过较长的路径才能访问到北京的服务器,返回路径也一样,所以数据传输时间比较长。
对于这种情况,可使用 CDN解决,其原理是将数据内容缓存到附近的机房,用户访问时先从最近的机房获取数据,这样可大大减少网络访问的路径,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题。的快速创建能力,可为我们构建海量用户的系统打下了坚实基础。
3.通过缓存加速数据库的访问
大部分网站访问都遵循28原则,即80%的访问请求,最终落在20%的数据上。因此,我们可以对热点数据进行缓存,减少这些数据的访问路径,减轻对数据库的压力,从而改善系统性,提高用户体验。】
4.通过数据库的分表分库和读写分离,解决容量和性能问题
随着用户量的增加,数据库会成为最大的瓶颈。改善数据库性能常用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。
5.构建海量的文件系统
随着用户量增加,业务量急剧增加,产生的文件越来越多,这样就会引来存储的容量瓶颈,数据备份,访问性能等一系列问题,单台文件服务器已经不能满足业务需求。
推荐博文:
https://blog.csdn.net/xlgen157387/article/details/53230138
https://www.cnblogs.com/wangzhongqiu/p/6557596.html