高并发解决方案案例

                                       并发解决方案案例

一、前端优化

1、防盗链处理

  • 把一些恶意的请求拒之问外。如:现在有A,B两个站,A站 想用 B站 的资源,直接在页面嵌入了一些图片,JS,CSS,本身来说,A站并不关心B站会消耗多少流量,但是对于B站来说,如果我们调用了B站的一些图片,JS或者CSS,都会对它做一个HTTP请求,就会消耗流量和带宽,所以本身对B站来说,会有不好的影响。从另一个角度来说,也侵犯了B站的版权问题,因此在这儿,要做 防盗链处理,这是流量的优化。

2、减少HTTP请求

  • 假设打开一个界面,可以把一些CSS,JS文件,图片进行合并,这样做虽然会使文件变大,但是减少了请求的次数。

3、添加异步请求

  • 如:不是一些很重要的数据,用户首次请求界面的时候,先不进行展示,需要的时候再进行展示,我们可以在旁边放一些事件,通过一些JS、jQuery等第三方库做一些AJAX的相关的异步请求,这样对于HTTP请求在性能上回有一个大幅度的提升,不要一次性把数据都加载过来,这样会对服务器造成很大的压力。

4、启用浏览器缓存和文件压缩

  • 如:启用浏览器 去缓存HTML文件给其设定过期时间,设定缓存文件相关的指纹等等。还可以将静态资源文件(如:JS、image等一些前端资源)设置过期时间缓存,为其指定过期时间,把它缓存到浏览器中,这样下一次再去访问的时候,不需要去请求服务端,可以直接通过浏览器把缓存读取出来。对于 文件压缩,可以通过一些压缩方式,如:把图片压缩的小一些,展示的时候图片就会下载的更快些,响应速度会加深,并且减少了流量的消耗,减少了带宽的消耗。同时也可以启用 Nginx 的 GCPR服务,将文件整体来说压的小一些。

5、CDN 加速

  • 可以把一些前端的文件,前端的资源全部都放到CDN当中,用户过来访问的时候,可以就近来进行访问,从而提高访问速度,并且从一定意义上来说,也解决了带宽不够用的问题,可以把数据缓存到CDN的节点中,在用户去访问的时候,都会就近的选择CDN的节点进行访问,从一定意义上来说,就不会访问我们真实的服务器。
     

6、建立独立图片服务器 

  • 因为本身来说,图片服务器是比较吃I/O的,为了解决对 I/O的损耗,可以把它与我们的 Web 服务器完全分离开,这样 Web 服务器本身的I/O 不会被我们的图片损耗,然后还可以针对性的对我们的图片服务器做一些优化,如:提高硬盘的转速;把CPU的计算能力降低下来;把图片服务器做一个集群。

二、后端优化

1、页面静态化

  • 把现有的服务端的逻辑(如:PHP),把PHP的一些逻辑,PHP的一些数据,PHP最终生成的要显示给用户的一些HTML内容缓存起来,直接缓存成HTML代码速度会更快,并且对我们的CPU负载,对我们的服务器的压力都会减小很多。

2、 并发处理

  • 多线程多进程的异步处理、队列处理 等等,都可以异步完成数据的处理,从而提升请求的响应的速度,同时也提升了并发数。

3、队列处理

  • 高并发时,需要一个中间件来进行处理,消息放入队列后就可以立刻返回了。
    

三、数据库优化

1、数据库缓存

  • memcache 缓存
  • redis 缓存等

2、分库分表、分区操作

  • 垂直拆分、水平拆分;
  • 分区

3、读写分离、主从复制、负载均衡

  • 把一些服务器,一些数据完全分开;
  • 一些服务器做数据库的读操作(查询),一些服务器做写操作(增、删、该)

四、Web 服务器优化

  • 可以使用 Nginx 的反向代理来实现负载均衡;
  • 使用七层,使用四层(LVS)软件来实现负载均衡。

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值