牛昆亮 张顺利 王丽
摘 要:应用服务器的过载和拒绝服务越来越频繁,是网站需要扩容的信号。此时网站必须进行扩容,以留住用户、提高用户体验。本文讨论通过升级硬件扩容和升级为分布式部署架构进行扩容的优缺点和选择条件。
关键词:服务器;数据库;分布式部署;扩容
当网站访问变得越来越慢时,就是告诉我们网站需要扩容了。为了留住用户,提高用户体验,我们可以从以下几个方面,对网站进行扩容。
1 通过升级硬件设备来扩容
升级硬件无疑是最直接的方案。对高访问量的网站而言,CPU、内存、网络带宽以及数据库的TPS性能,直接制约着网站的并发访问量,决定了客户的体验。
升级硬件,也是最简单的方案。只需要把软件在新的硬件上重新部署,然后启用。便完成了整个升级过程。
1.1 升级为更高性能主机
主机性能,主要由主机的CPU频率、内存大小和速度,磁盘IO的性能等决定。客户体验的提高,应着重解决网站的瓶颈。
常见的网站,一般由数据库和网站组成。对于以数据库为核心的数据流网站,一般来讲应该重点考察升级数据库服务器的性能。对于以业务计算、尤其是科学计算较多的情景,应该重点考察网站的CPU等。
找到瓶颈,对瓶颈扩容升级后,网络性能会显著的提高,改善用户体验。
1.2 增加网站出口的带宽
网络带宽的不足也会造成网络访问缓慢。表现为网站和数据库服务器的压力较小,而网站网络负载已经达到外网出口的理论速度。此时应该向SP申请更高的带宽来解决问题。
2 网站升级为分布式部署架构
分布式部署是目前的主流技术,其特点是以量取胜,从而突破单一硬件的性能限制。分布式系统的特性,可以简单的实现业务的不间断运行。可以提供7*24小时的服务。
2.1 网络流量分流
目前常用的分流技术有以下几种。
⑴网络负载均衡。此处的负载均衡,是一种分工合作的的形式。用户访问主服务器时,由主服务器依算法把用户跳转到各台成员主机,而实现流量分摊。
⑵使用DNS轮询技术。大多域名注册商都支持多条A记录的解析,其实这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。
2.2 业务计算量分流
⑴使用F5 BIG-IP LTM(本地流量管理器)进行分流。该产品是流量和内容进行管理分配的设备。它提供12种灵活的算法将数据流有效地转发到它所连接的服务器群。而面对用户,只是一台虚拟服务器。用户此时只需访问定义于BIG-IP LTM上的一台服务器,即虚拟服务器(Virtual Server)。但他们的数据流却被BIG-IP灵活地均衡到所有的物理服务器。
⑵使用反向代理进行业务分流。反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的网络连接请求,然后将这些请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。
2.3 网站进行分地域部署和业务切分
⑴内容分发网络(CDN)。CDN的通俗理解就是网站加速,CPU均衡负载,可以解决跨运营商,跨地区,服务器负载能力过低,带宽过少等带来的网站打开速度慢等问题。
⑵地域分站点。在不同的城市托管不同的主机,依IP所属城市自行跳转到各自的站点。每个站点还可以提供地域相关的内容和服务。
3 扩容常见问题
3.1 应该处理好失效转移(failover),提高用户体验
当某个成员服务器宕机时,无法为终端用户提供服务,系统应该自动地切换,把终端用户分派到其它正常的服务器上,为其感觉不到服务器已经更新,从而实现不间断的服务、提高用户体验。常用的失效转移监控技术,有心跳线等。
3.2 保持好用户会话的信息,无间断为用户服务
分布式部署环境下,常用的保持用户会话状态的方法有:
⑴使用共享式Session保存会话信息。共享式Session,是指多个成员服务器,把会话信息(Session)从本机的内存中取出来,进行集中存放。这样当服务器A宕机时,服务器B可以从集中存放处,取出会话信息,得到用户身份等信息,继续为用户服务。共享式Session可以存储在指定的服务器进程中、可以存储到数据库中、也可以存储到Nosql内存数据库中。因为会话信息的集中存取,该点成为单点时,会使网站的可靠性降低。所以适用于规模较小的分布式环境中。
⑵使用客户端小甜饼(Client Cookie)保存会话信息。通过把用户的身份信息通过加密算法转换,然后放在终端浏览器中。用户终端每次访问服务器时,都通过HTTP协议携带了该Cookie,服务器端解析、解密后,得到用户会话信息,继续为用户提供服务。该方案属于用户会话的分布式存储,不存在单点问题,可以用在大型的分布式环境中。
最后,网站系统的扩容,应该是先找到系统的瓶颈,然后有根据的扩容。才能得到最大的收益投资比,最大化用户的使用体验。
[参考文献]
[1]王丽.《浅析提高网站性能的几种技术》.
[2]邓小善.《高访问量网站性能监测与优化的设计与实现》.