大型网站技术架构:核心原理与案例分析阅读笔记五
大型网站核心架构要素之伸缩性
所谓网站的伸缩性是指不需要改变网站的软硬件设置,仅仅通过改变部署的服务器数量就可以扩大或缩小网站的服务处理能力。回顾网站架构的发展史,其实就是一部不断向网站添加服务器的历史。
那么如何设计网站的伸缩性?不同功能进行物理分离实现伸缩,具体可分为纵向分离和横向分离;单一功能通过集群规模实现伸缩,通过上面所诉的分离后,使用服务器集群,将相同服务部署在多台服务器上构成一个集群整体对外提供服务。
而通过集群规模实现伸缩又分为应用服务器集群伸缩性和数据服务器集群伸缩性,数据服务器集群也可分为缓存数据服务器集群和存储数据服务器集群。
要想实现应用服务器集群伸缩性就必须依赖负载均衡服务器,而实现负载均衡的基础技术有以下几种。HTTP重定向负载均衡、DNS域名解析负载均衡、反向代理负载均衡、IP负载均衡、数据链路层负载均衡。
不同于应用服务器集群的伸缩性设计,分布式缓存集群的伸缩性不能使用简单的负载均衡手段来实现,由于分布式缓存服务器集群中不同服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器中的任意一台处理,必须先找到缓存有需要数据的服务器,然后才能访问。所以分布式缓存集群伸缩性设计的最主要目标就是新加入缓存服务器后应使整个缓存服务器集群中缓存的数据尽可能还被访问到。
和分布式缓存集群的伸缩性设计不同,数据存储服务器集群的伸缩性对数据的持久性和可用性有了更高的要求。具体分为关系数据库集群的伸缩性设计和NoSQL数据库的伸缩性设计。