应用层横向扩展——负载均衡|学习笔记

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 快速学习应用层横向扩展——负载均衡

开发者学堂课程【企业级互联网分布式系统应用架构学习应用层横向扩展——负载均衡】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/503/detail/6743


应用层横向扩展——负载均衡

内容介绍:

一、提高应用并发度

二、应用层横向扩展

三、弹性伸缩服务

 

在前节介绍了如何提高互联网访问速度,接下来我们来我们来介绍如何提高应用并发度


一、提高应用并发度

1、应用层横向扩展

2、使用应用层缓存

3、同步转异步(将大的并发请求同步接收下来以后快速的转为异步处理)

4、数据库读写分离及提高IO能力

二、应用层横向扩展

要进行应用层横向扩展要在架构上进行调整,过去如果单台服务器对客户进行服务的话是无法进行横向扩展的,所以要在 web 服务器和应用服务器之前搭建一个负载均衡服务,通过负载均衡服务可以把用户的访问请求分发到后台的 web 服务器上,有关于阿里云负载均衡服务讲述可以参考之前的课程。

本节只讲述以下几点:

分别提供4层和7层的负载均衡

应用如果是 tctip 协议可以通过四层负载来进行流量的分发和均衡,如果应用是web 基于 http 服务的就可以通过七层负载进行流量分发,有了负载均衡基础后就可以进行动态扩容应用服务器或者web服务器。

横向扩展的需求场景

1、游戏

游戏场景中,通常在中午12点的时候服务器压力会非常大,通常是因为中午在休息时间,每天中午12点,用户一起打怪需要定时扩容,以承载更大容量。

2、网站促销秒杀

对于电商平台,比如双十一,服务压力会非常大,平常可能十台服务器支撑一个电商平台,在促销过程中就可能需要100台服务器,每年促销秒杀,负载骤增需要按负载自动弹性伸缩。

为了应对这些场景,过去的应对策略是通过超配资源来解决,就是先预测峰值可能需要多少服务器,比如刚才说的电商网站峰值需要100台服务器,就超配资源以100台的规模进行分配,这么做风险是最低的但是会造成资源的大量浪费,因为正常访问的情况下只需要10台服务器。

图片1.png

第二个就是进行人工伸缩,就是通过运维人员进行资源调度。通过观察到的监控指标,比如 CPU 和 IO,超过警戒线以后再进行资源分配,这种方式可以在一定程度上减少资源浪费,但是也会隐藏非常大的风险,比如说当人工判断资源即将耗尽的时候临时加资源,如果这个操作耗时过长可能会导致整个系统雪崩,比如当十台服务器要加到12台时,如果在预定时间内没有配置好前面10台将承载非常大的压力,甚至会出现故障,这时候9台承载压力,当这9台承载不住压力会导致整体的系统雪崩。

图片2.png

最好的模式是自动由平台来判断什么时候弹性的增加资源。就可用到阿里云的弹性伸缩服务。

三、弹性伸缩服务

它可以根据用户的业务需求或者一些时间策略自动的来调整计算资源的数量,比如在这个图上可以设定一个条件,当几台服务器 CPU 的平均值大于80%以后就新增加一系列的服务技术,

图片3.png

当这些 CPU 的负载持续一段时间小于30%以后,可以减少其中一个服务器,通过这样一个方式使得我的整个架构更加弹性能够更大程度的支撑用户的访问。

图片4.png

除了像 CPU 和 IO 值的判断以外还可以定时,比如刚才的游戏场景每天十二点用户会增多,就可以动态的在11点半增加服务器。虽然原理分析很简单但实际上需要很多的技术来配合。

比如说要产生新的服务器他的配置一定要和原来已经部署好的服务器是一样的,甚至我的应用要提前部署好。

这些技术在阿里云都是通过自动化来实现的,比如说先把一个部署好的资源先做出镜像,当动态资源都基于这样一个镜像产生,同时这些负载均衡服务也能感知到新的资源产生,把流量分发到镜像资源上整个配置过程就是处理资源扩容的一些条件,然后设定扩容的一个规模,设定完成后具体效果看实际测试:

在这个场景里,预先配置好的两个服务器来支撑正常的用户访问,当用户的访问突然增大以后,可以看到机器的 CPU 都处于非常高的位置,触发了预设的条件,可以很快的看到其他的服务器产生并自动的加入到集群里

图片5.png

当这个压力情况缓解以后,比如观测到 CPU 持续下降,这个时候刚才新加的两个机器就可以退出服务,最终架构又恢复到两台的状况。

图片6.png

总结:

通过云计算技术可以非常好的应用横向扩容,但需要多项技术支撑

1、负载均衡

2、云服务器弹性部署

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
负载均衡 算法 关系型数据库
mysql的弹性扩展和负载均衡
mysql的弹性扩展和负载均衡
174 0
|
2天前
|
弹性计算 负载均衡 监控
slb弹性扩展
【11月更文挑战第4天】
7 2
|
4月前
|
负载均衡 算法 Java
实现高可用和可扩展的负载均衡系统的Java方法
实现高可用和可扩展的负载均衡系统的Java方法
|
6月前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
存储 负载均衡 算法
08-微服务技术栈(扩展):负载均衡算法
负载均衡算法作为Redis、MQ、ZK,GateWay等集群、组件必不可少的算法策略,是微服务框架中不可或缺的一部分知识点,本节我们将花费短暂的时间做个了解。
309 0
|
弹性计算 编解码 运维
第三讲《云上网络VPC&EIP&NAT&共享带宽&SLB》|学习笔记
快速学习第三讲《云上网络VPC&EIP&NAT&共享带宽&SLB》。
第三讲《云上网络VPC&EIP&NAT&共享带宽&SLB》|学习笔记
|
消息中间件 负载均衡 监控
RocketMQ 5.0 客户端负载均衡机制|学习笔记
快速学习 RocketMQ 5.0 客户端负载均衡机制
314 0
RocketMQ 5.0 客户端负载均衡机制|学习笔记
|
负载均衡 网络协议 Java
Spring Cloud 学习笔记04----服务消费者(RestTemplate+Ribbon(客户端负载均衡))
上一篇《Spring Cloud 学习笔记02----服务治理》我们讲到了服务的注册与发现,在微服务框架中,我们将服务拆分成一个个独立部署的子服务,这些服务通过http rest 来通讯的,Spring Cloud有两种服务调用方式,一种是 RestTemplate+Ribbon, 另外一种是Feign 。
155 0
Spring Cloud 学习笔记04----服务消费者(RestTemplate+Ribbon(客户端负载均衡))
|
弹性计算 负载均衡 监控
SLB 负载均衡 02-SLB 的基本概念视频| 学习笔记
快速学习 SLB 负载均衡 02-SLB 的基本概念视频。
SLB 负载均衡 02-SLB 的基本概念视频| 学习笔记
|
弹性计算 负载均衡 云计算
SLB 负载均衡01-负载均衡的产生及发展视频| 学习笔记
快速学习 SLB 负载均衡01-负载均衡的产生及发展视频。
SLB 负载均衡01-负载均衡的产生及发展视频| 学习笔记