所谓网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。
一般说来,网站的伸缩性设计可分成两类:
根据功能进行物理分离实现伸缩:
不同的服务器部署不同的服务,提供不同的功能,具体可分成如下两种情况:
纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性
横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性
横向分离的粒度可以非常小,甚至可以一个关键网页部署成一个独立服务,比如对于电商网站非常重要的产品详情页面、商铺页面、搜索列表页面,每个页面都可以独立部署,专门维护。
单一功能通过集群实现伸缩:
集群内的多台服务器部署相同的服务,提供相同的功能。
集群伸缩性又可分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群由于对数据状态管理的不同,技术实现也有非常大的区别。
而数据服务器集群也可分为缓存数据服务器集群和存储数据服务器集群,这两种集群的伸缩性设计也不大相同。