网站高并发的处理措施
来源:互联网 发布:sql 列出表中所有字段 编辑:程序博客网 时间:2024/06/05 04:38
大型网站的架构,主要用来解决高并发大用户量的应用情景。2016年双11,我们公司的一个发券活动,在上午11点11分,代码所在的服务器宕机了。结果市场部门的出去吹嘘说我们公司的业务火爆,把服务器都造瘫痪了。在这里我只能呵呵再呵呵。不过说到底,业务访问量只是一方面,在技术架构上,真的存在很多不合理待优化的点。今天整理一下大型网站架构的设计以及主要的应用思想,以备在日后的工作中不断应用。
一、网站的初始阶段
以lamp或者lnmp为例,初始阶段,访问量不大。服务器以linux为底,apache或nginx上面部署php,DBMS也部署在这台服务器上。部分业务涉及到文件的,如图片视频等,文件服务器也是这台服务器。
二、应用服务器和数据服务分离
随着业务发展,用户量上升,一台服务器不能满足要求时,通常采取做法是应用服务器和数据库服务器分离。比如应用服务器需要负责代码逻辑运算,那么就需要一台cpu性能良好的服务器;数据库服务器经常涉及到检索或缓存,那么就需要一台内存足够大,硬盘足够快的服务器;文件服务器需要存储用户的图片视频等信息,那么就需要一台硬盘足够大的服务器。
应用服务和数据服务分离的做法,增加了网站的并发处理能力,也改善了数据存储空间。
三、使用缓存技术
网站架构也和现实世界的二八定律一个原理,百分之八十的业务跑在百分之二十的代码上。所以适当把数据放入内存中,能加快数据的写入性,减少数据库的访问压力,其中就包括非关系型数据库的应用。
网站缓存分为两种:
- 缓存在应用服务器上的本地缓存
- 缓存在专门的分布式缓存服务器的远程缓存
本地的应用服务器缓存速度固然快,但是存在和应用服务争夺内存的情况;远程分布式缓存服务器速度相对慢些,可以以集群的方式出现并且理论不受内存空间的限制。
四、使用应用服务器集群
应用服务器集群是常见的解决高并发的手段,我们称之为负载均衡。做法是增加一太或多台服务器,分担原有应用服务器的负载。其实现原理为通过负载均衡调度服务器将来自用户的请求分发到一个应用服务器中执行业务逻辑处理。
五、数据库读写分离
由于大部分的数据库都支持主从热备份功能。故可以利用这点,将数据库的读出和写入分离,只从主库写入,从库读出,进而改善数据库的负载压力。
六、使用反向代理和CDN加速
反向代理和CDN加速的原理都是依靠缓存:CDN部署在网络供应商的机房,反向代理服务器部署在应用程序服务器机房。反向代理服务器和负载均衡的关系要清晰,负载均衡是反向代理的目的之一,除此以外,反向代理还有一个功能就是缓存。
七、使用分布式数据库或文件服务器
当单表数据量非常大时,可以采用分布式数据库来存储数据。此外,更通常一些的做法是将业务分库。
八、业务拆分
当网站规模达到一定水平时,要通过业务拆分来合理设计架构,比如电商系统,肯定是商品浏览和筛选这块功能负载最大,可以将这部分拆分为商品组。同理,订单、用户、物流等等都可为一组。每个业务组之间通过请求建立联系。实现访问量的科学合理分配。
以上八点,足够解决一些中小型网站的高并发问题。
私以为,一个公司的发展要以市场为导向,但是技术的变革和发展,是要依靠市场业务的反作用力,所以选择一家业务前进好的公司,对于技术人员的水平发展,要好于业务上不去的公司。当然,还是要看技术人员自身啦
反向代理和负载均衡参考:http://blog.csdn.net/cywosp/article/details/38026809
- 网站高并发的处理措施
- 网站高并发的处理措施
- 网站高并发的处理
- 处理高并发高负载类网站的优化方法
- 海量高并发处理网站的负载均衡如何设计
- 网站高并发 大流量访问的处理及解决方法
- 网站高并发 大流量访问的处理及解决方法
- 网站高并发大流量访问的处理及解决方法
- Java处理 网站高并发问题 的优化方法
- Java处理 网站高并发问题 的优化方法
- 网站高并发 大流量访问的处理及解决方法?
- 网站高并发 大流量访问的处理及解决方法
- 网站高并发 大流量访问的处理及解决方法
- 网站高并发大流量访问的处理及解决方法
- 处理高并发、大数据存储的网站技术架构
- 高并发的处理
- 高并发的网站架构
- 高并发的网站架构
- GridView里面怎么限制文本的长度
- 设计一个可扩展的用户登录系统 (2)
- 并查集(以hdu1232 畅通工程为例)
- 使用RecyclerView自定义目录快速索引
- 蓝桥杯-入门训练-圆的面积
- 网站高并发的处理措施
- XX-Net使用:XX-Net在各平台使用方法介绍(一)
- HDU-1010(DFS)
- 一念永恒 > 第531章 仿佛看到了自己
- 51nod 1189 阶乘分数 [因子个数+逆元]【数论】
- MySQL(基于InnoDB存储引擎)
- 微信小程序-编辑器插件
- UVA Digit Counting UVA - 1225
- WebView