高并发的解决方案

在上篇文章我们讲到海量数据的解决方案(缓存、页面、数据库),现在重点讲高并发的解决方案。

除了数据量大,另一个常见的问题就是并发量高,很多架构就是针对这个问题设计出来的,下面分別介绍。

一、应用和静态资源分离
刚幵始的时候应川和静态资源是保存在一起的,当并发量达到一定程度时就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、CSS和一些资源文件等,这些文件因为没有状态,所以分离比较简单,直接存放到相应的服务器就可以了,一般会使叫专门的域名去访问,比如,新浪的图片保存在sinaimg.cn域名对应的服务器中,而百度的图片则是通过imgsrc.baiduxom二级域名访问的,通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了,这时的架构如下所示。

二、页面缓存
页面缓存是将应用生成的页面缓存起来,这样就不需耍每次都重新生成贞面了,从而可以节省大量CPU资源,如果将缓存的页面放到内存中速度就更快了。如果使用了Nginx服务器就可以使用它自带的缓存功能,当然也可以使用专门的Squid服务器。页面缓存的默认失效机制一般是按缓存时间处理的,当然也可以在修改数据之后手动让相应缓存失效。
有部分警察变化的数据的页面怎么使用缓存技术,对于这个问题可以先生成静态页面然后使用Ajax来读取并修改相应的数据,这样就可以一举两得了,既可以使用页面缓存也可以实时显示一些变化频率高的数据了。
三、集群分布式
集群和分布式处理都是使用多台服务器进行处理的,集群是每台服务器都具有相同的功能,处理请求时调用哪台服务器都可以,主要起分流的作用,分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器,这样就可以提高一个请求的处理速度,而且集群和分布式也可以同时使用。
集群有两个方式:一种是静态资源集群。另一种是应用程序集群。静态资源集群比较简单,而应用程序集群就有点复杂了。因为应用程序在处理过程中可能会使用到一些缓存的数据,如果集群就需要同步这些数据,其中最重要的就是Session, Session同步也是应用程序集群中非常核心的一个问题。Session同步有两种处理方式:一种是在Session发生变化后自动同步到其他服务器,另外一种方式是用一个程序统一管理Session。所有集群的服务器都使用同一个Session。
三、反向代理
反向代理指的是客户端直接访问的服务器并不真正提供服务,它从别的服务器获取资源然后将结果返回给用户的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值