【读书笔记】网站的伸缩性架构

前言

本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性本文针对伸缩性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书(一万分推荐这本书,个人认为这本书可以说是技术架构导论一样的存在了)。

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

网站架构的伸缩性设计

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

网站发展的早期,通过增加服务器提高网站处理能力时,新增的服务器总是从现有服务器中分离出本分功能和服务。如下所示
在这里插入图片描述

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

正如在介绍网站的可用性架构设计时,提到的使用集群来避免某些服务器压力过大,使用集群也正是实现伸缩性的一个重要手段。

应用服务器集群的伸缩性设计

应用服务器只要不具有状态,那么就可以很容易地通过负载均衡器向集群中添加新的服务器。

分布式缓存集群的伸缩性设计

应用服务器集群中的每个服务器都部署着相同的应用!

而分布式缓存服务器集群中不同服务器中缓存的数据各不相同,

缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存有需要数据的服务器,然后才能访问。

这个特点会严重制约分布式缓存集群的伸缩性设计,因为新上线的缓存服务器没有缓存任何数据,而已经下线的缓存服务器还缓存着网站的许多热点数据

必须让新上线的缓存服务器对整个分布式缓存集群影响最小,也就是说新加入的缓存服务器后应该使整个缓存服务器集群中已经缓存的数据尽可能还被访问到,这是分布式缓存集群伸缩性设计的最主要目标。

数据存储服务器集群的伸缩性设计

关系型数据库的伸缩性通过 Sharding 来实现,将数据按一定的规则分布到不同的节点上,从而解决单台存储服务器的存储空间限制。

猜你喜欢

转载自blog.csdn.net/u013568373/article/details/91364500