购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.5 构建高伸缩性

对互联网云服务而言,访问量和数据量随时都可能呈几何级增长,在架构设计中,需要考虑以最简单的方式来应对这些变化,这就是高伸缩性。表3-7所示为垂直扩展与水平扩展两种扩展方式的比较。

表3-7 垂直扩展与水平扩展的比较

3.5.1 设计规则扩展与性能

由于云服务扩张较企业服务要快,在架构时,尽量坚持“无状态”和“就地失败”原则,只有这样,才能适应系统伸缩性的要求。

架构的另一个原则是针对系统瓶颈,在设计时就要有针对性地设计,如Web层采用Apache集群,集群能力取决于负载均衡器能力,加入采用LVS,可以支持百万人访问,这是系统集群的最大能力,在架构时,要考虑在能力不足时,采用多个Linux虚拟服务器(LVS)一起工作的模式,如采用域名系统(DNS)将不同区域访问指向不同的LVS地址,一般认为可以将系统能力扩展到无限制。

因此,在高伸缩性设计时首先要遵守云计算访问设计基本准则,还要识别系统性能瓶颈点,有针对性地进行设计,确保在系统用户急剧增加时能够快速增加部署,确保业务稳定及性能。

3.5.2 并发访问量

水平伸缩存在无限扩展的可能,为了支撑大的访问量,目前大型的互联网服务在架构设计上做了很多努力,实现了在系统用量增加的情况下,仅需增加硬件设备,无须调整架构。

为了做到水平伸缩,应用应该是无状态的,架构设计上通常将有状态的信息集中存入缓存或者数据库中,业界也称为SNA(Share Nothing Architecture)架构。比较常用的方案是分布式缓存,比如开源的Memcached方案。

3.5.3 并发数据访问与I/O

访问量的增加会提升对数据库的访问频率,而数据量的增加会直接导致数据库读写性能的下降,互联网服务瓶颈很大一部分来自数据库。垂直伸缩能起到一定的缓解作用。通过增加机器,进行水平扩展,能有效地提升数据库读写数据的能力。表3-8所示为几种常用数据库扩展方式的比较。

表3-8 几种常用数据库扩展方式的比较 2DnBgoFhyisbyxBXmLx9HIo3Igz7iRYMrmTVzcCMFiYUrYlEnBcntPyaH5qzu1uL

点击中间区域
呼出菜单
上一章
目录
下一章
×