1、网站架构的伸缩性是什么
1.1 背景
大型网站在遇到用户访问量激增的时候,通过添加服务器集群节点来提高整个集群的处理能力,从而保障用户的正常操作访问。
1.2 概念
官方说法
所谓网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。
个人理解
所谓的网站伸缩性就是可以根据用户量的增加,对服务器进行动态扩展就可以保障系统处理能力。
1.3 为什么要做?
伸缩性的价值
网站的伸缩性其实最终解决的不仅仅是系统层面的问题,最直接的就是服务器的维护成本,只需要在用户激增时增加服务器,其他时候需要下架服务器。
2、如何做网站的伸缩性架构?
2.1 不同功能进行物理分离实现伸缩
通过将不同服务的模块抽离出来单独部署,提供某种特定服务,来达到网站架构的伸缩性
原理:
我们通过多台服务器组装一个整体共同提供服务,通过不断地向集群中加入服务器,来缓解不断上升的
用户并发访问压力和不断增长的数据存储需求。
2.2 纵向分离 (分层之后)
通过对业务处理流程上的不同部分分离部署,实现伸缩性
2.3 横向分离 (业务分离后)
将不同的业务模块进行分离部署,实现系统伸缩性
此时颗粒度已近很小了,单独的一个网页独立部署,单独维护。
3、 单一功能通过集群规模实现伸缩
将不同功能分离部署可以实现一定程度的伸缩性,根据某个功能模块的访问量,动态增加该集群的服务器,来对外提供一致的服务。
举例:
大型电商平台的抢购功能就是伸缩性的体现,单独把抢购服务分离出来,增加集群的节点来应对突然激增的用户流量带来的压力,这就是单一功能通过集群来实现伸缩的一种实现。