Loading

大型网站技术架构,6网站的伸缩性架构之网站架构伸缩性设计

网站的伸缩性:

 

不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。

 

传统的银行系统,从一开始就明确知道要设计成大型网站架构,系统规模庞大,一般也是在硬件上投钱打造。

 

而互联网系统,业务较新,很多一边探索一边发展,一开始不可能规划出自己的规模,也不可能有那么多钱开发一个大型系统,更不可能到了某个阶段再重新打造一个系统,只能摸着石头过河,从一台廉价的PC服务器开始自己的大型系统演化之路。

 

在这个渐进式的演化过程中,最重要的技术手段就是使用服务器集群,通过不断地向集群中添加服务器来增强整个集群的处理能力。

 

这就是网站系统的伸缩性架构,只要技术上能做到向集群中加入服务器的数量和集群的处理能力成线性关系,那么网站就可以以此手段不断提升自己的规模。

 

不仅能够伸,还可以缩,比如大促时需要添加机器,大促结束后,可以缩减机器,释放资源,节约成本。

 

网站不一定要大,也不一定会发展的大,但是一定要可伸缩、高可用、高性能。

 

6.1 网站架构的伸缩性设计

 网站的伸缩性分为两类:

1、根据功能进行物理分离实现伸缩,不同的服务器部署不同的服务,提供不同的功能

2、单一功能通过集群实现伸缩,集群内的多台服务器部署相同的服务,提供相同的功能。

 

6.1.1 不同功能进行物理分离实现伸缩

物理分离

 

纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性

 

 

横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性

 

 横向分离的粒度可以非常小,甚至可以一个关键网页部署一个独立服务,比如对于电商网站非常重要的产品详情页面,商铺页面,搜索列表页面,每个页面都可以独立部署,专门维护。

 

6.1.2 单一功能通过集群规模实现伸缩

 集群伸缩性分为:

1、应用服务器集群伸缩

2、数据服务器集群伸缩

 

这两种集群由于对数据状态管理的不同,技术实现也有非常大的区别。

 

数据服务器集群又分为:

1、缓存数据服务器集群

2、存储数据服务器集群

 

总结:

伸缩性设计,首先要根据不同的功能拆分,通过物理分离实现伸缩。

在拆分后的某个功能无法承受压力时,通过集群方式提高单一功能的承载能力。 

 

后面会从应用服务器和数据服务器集群伸缩一一阐述。

posted @ 2019-09-12 13:20  元宝爸爸  阅读(301)  评论(0编辑  收藏  举报