高并发的解决方案

时间:2022-07-16 17:59:24

在大型网站中,我们不得不面临高并发的问题,下面分别介绍一些解决方案。

1 应用和静态资源分离

当并发量达到一定程度时,我们可以将静态资源保存到专门的服务器中,这样主服务器就可以尽量只处理业务相关的操作。

高并发的解决方案

2 页面缓存

页面缓存是将应用生成的页面缓存起来,这样就不需要每次都重新生成页面,从而节省大量CPU资源。如果静态页面中有动态数据,只需在页面加载成功后异步拉取最新的服务器数据即可。常用的框架 Freeemarker 和 Velocity 都可以根据模板生成静态页面。

3 集群与分布式

集群和分布式处理都是使用多台服务器进行处理的,集群是每台服务器都具有相同的功能,处理请求时调用哪台服务器都可以,主要起分流的作用。集群有两种方式:一种是静态资源集群,另一种是应用程序集群。
应用程序集群的核心问题就是缓存数据,这里可以使用缓存框架Memcached。应用程序集群如下所示:

高并发的解决方案

4 反向代理

反向代理指的是客户端直接访问的服务器并不真正提供服务,它从别的服务器获取资源然后将结果返回给用户。反向代理和我们常说的VPN代理服务器是有区别的,VPN是我们访问某个资源失败,通过一台代理服务器去访问然后返回结果。反向代理是我们能够访问服务器,但是服务器内部调用了别的服务器来完成业务。

高并发的解决方案

5 CDN

CDN 是一种特殊的集群页面缓存服务器。CDN的服务器遍布全国各地的,当接收到用户的请求后会将请求分配到最合适的 CDN 服务器节点获取数据,比如联通的用户访问联通的节点。

高并发的解决方案

 


Appendix

Revision History

时间 描述
2017-09-24 博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974