更多课程 选择中心


Web培训

400-996-5531

Web培训

使用可伸缩的基础技术产品-可伸缩Web开发第二技术

  • 发布:佚名
  • 来源:网络
  • 时间:2015-10-30 14:28

前面提到,单一服务或者应用需要通过集群的方式提供更强大的计算处理能力。集群即多台服务器部署相同应用或服务构成一个服务器群统一对外提供服务。如果有更多用户访问,需要处理更多并发访问请求的时候,只需要向集群中添加新的服务器即可。这就要求服务或应用本身具有可伸缩性。

1. 通过负载均衡实现应用服务器可伸缩

应用服务器一般指部署核心业务逻辑,主要处理用户请求的服务器。应用通常设计成无状态结构,即应用本身不记录用户请求的上下文信息,这样设计的好处是任何用户的任何一次请求都可以交给任何一个应用服务器去处理。实践中,一般通过负载均衡服务器将一组应用服务器构建成一个集群,如图5。

通过负载均衡实现应用服务器可伸缩

图5 通过负载均衡实现应用服务器可伸缩

首先在负载均衡服务器上配置所有的应用服务器信息,用户请求先到达负载均衡服务器,负载均衡服务器通过某种负载均衡算法计算得到一个应用服务器的网络地址,然后将请求数据包转发给这个应用服务器,由该服务器完成用户请求处理。如果用户数增加,并发请求超过现有集群的处理能力,只需要在现有应用服务器集群中增加服务器,在负载均衡服务器上增加新的服务器配置信息,部分用户请求就会转发到新增服务器上,实现分担集群访问压力的目的。

负载均衡服务器的实现有很多种,DNS负载均衡、HTTP重定向负载均衡,HTTP转发负载均衡、IP层负载均衡、数据链路层负载均衡等,实践中,中小网站多使用Nginx等反向代理服务器实现HTTP转发负载均衡,而规模稍大以后则基本都使用LVS实现IP层负载均衡或者数据链路层负载均衡。目前越来越多的网站使用云服务部署网站,这些云服务也提供负载均衡服务,背后使用的技术依然是LVS或者HTTP转发。

2. 通过远程分布式缓存实现缓存可伸缩

缓存是改善网站性能的最重要手段,一方面缓存使用内存存储数据,可以更快速地响应请求;另一方面大量数据访问请求通过缓存返回,减少数据库压力,进一步改善性能。目前网站中大量使用的缓存服务是Memcached或者Redis。Memcached分布式缓存访问模型如图6。

Memcached分布式缓存访问模型

图6 Memcached分布式缓存访问模型

应用程序通过Memcached客户端访问Memcached服务器集群,其中路由算法模块负责根据应用程序输入的KEY计算得到应该访问哪台服务器,然后通过通信模块从对应服务器上读写数据。

如果Memecahed集群需要缓存更多数据或者需要提供更高的并发访问,只需要向集群中增加新的服务器,然后修改客户端服务器列表即可应用程序访问到新加的服务器。

需要注意的是如果路由算法选择不当,比如使用余数Hash算法,会出现加入一台服务器而导致现有的缓存数据大量访问不能命中的情况,其后果相当于缓存服务器集群整体宕机,给系统带来灾难性后果。目前Memcached主要采用一致性Hash算法,这种算法可以使加入新服务器对现有数据访问影响最小。而Redis通过一种类似虚拟节点的映射算法也可以达到相似的效果。

3. 通过主从复制和分布式数据库实现数据库可伸缩

目前各种网站主要使用的关系数据库是MySQL,MySQL支持数据复制功能,使用这个功能可以对数据库进行简单的伸缩。图7为使用数据复制的MySQL集群伸缩性方案。

通过主从复制实现简单伸缩性的MySQL集群

图7 通过主从复制实现简单伸缩性的MySQL集群

在这个方案中,虽然多台服务器部署MySQL实例,但是他们的角色有主从之分,数据写操作都在主服务器上,由主服务器将数据同步到集群中其他从服务器,数据读操作及数据分析等离线操作在从服务器上进行。

主从复制只能通过增加有限的几台服务器分担数据库的访问压力,如果数据库需要记录数千万上亿条记录,需要应对每秒数十万次访问压力,那么主从复制是远远不够的。这种情况下,可以考虑使用更具伸缩性的各种NoSQL数据库产品,如HBase等,也可以考虑使用分布式数据库。分布式关系数据库则通过一个代理层将数据分片并经过路由后写入一个关系数据库集群中。

除了应用、缓存、数据库,其他的服务,诸如搜索、消息队列等也可以以类似的思路和方案实现集群可伸缩。

相关推荐:

构建可伸缩的Web架构-可伸缩Web开发第一技术

使用可伸缩的基础技术产品-可伸缩Web开发第二技术

打造可伸缩的技术团队-可伸缩Web开发第三技术

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:十大面向对象设计原则
下一篇:18个你可能不相信是用CSS制作出来的东西

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

贵州省

云南省

广西省

海南省