大型网站技术架构 读书笔记 (六) 网站的伸缩性架构

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

1. 网站架构的伸缩性设计

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

纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。
在这里插入图片描述
横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性。
在这里插入图片描述

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

将相同服务部署在多台服务器上构成一个集群整体对外提供服务。

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

2.1 负载均衡实现应用服务器伸缩性

在这里插入图片描述

2.2 HTTP重定向负载均衡

在这里插入图片描述

2.3 DNS域名解析负载均衡

在这里插入图片描述

2.4 反向代理负载均衡

反向代理服务器转发请求在HTTP协议层面,因此也叫应用层负载均衡。其优点是和反向代理服务器功能集成在一起,部署简单。缺点是反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。
在这里插入图片描述

2.5 IP负载均衡

在这里插入图片描述

2.6 数据链路层负载均衡

这种数据传输方式又称作三角传输模式,负载均衡数据分发过程中不修改IP地址,只修改目的mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的,由于实际处理请求的真实物理服务器IP和数据请求目的IP一致,不需要通过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。这种负载均衡方式又称作直接路由方式(DR)。
在这里插入图片描述

2.7 负载均衡算法
  • 轮询(Round Robin,RR): 所有请求被依次分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同,适合于所有服务器硬件都相同的场景。
  • 加权轮询(Weighted Round Robin,WRR): 根据应用服务器硬件性能的情况,在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能的服务器能分配更多请求。
  • 随机(Random): 请求被随机分配到各个应用服务器,在许多场合下,这种方案都很简单实用,因为好的随机数本身就很均衡。即使应用服务器硬件配置不同,也可以使用加权随机算法。
  • 最少连接(Least Connections): 记录每个应用服务器正在处理的连接数(请求数),将新到的请求分发到最少连接的服务器上,应该说,这是最符合负载均衡定义的算法。同样,最少连接算法也可以实现加权最少连接。
  • 源地址散列(Source Hashing): 根据请求来源的IP地址进行Hash计算,得到应用服务器,这样来自同一个IP地址的请求总在同一个服务器上处理,该请求的上下文信息可以存储在这台服务器上,在一个会话周期内重复使用,从而实现会话黏滞。

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

3.1 Memcached分布式缓存集群的访问模型

在这里插入图片描述

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

4.1 关系数据库集群的伸缩性设计

MySQL集群伸缩性方案:
在这里插入图片描述

4.2 NoSQL数据库的伸缩性设计

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值