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

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

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

课程地址:https://developer.aliyun.com/learning/course/369/detail/4391


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


内容介绍

一、调整架构

二、需求场景

三、应对策略

四、配置过程


五、具体效果

如何提高应用并发度。

第一,如何使得应用能够更好的横向扩展。

第二,要更好地利用应用层的缓存。

第三,同步转异步。把大的并发请求同步接触下来后快速地转成异步处理。

第四,对数据库层做读写分离,提高数据库层的io能力。

进行应用横向扩展要在架构上进行调整。过去单台服务器对客户进行服务,无法进行横向扩展。


一、调整架构

需要在 web 服务器或应用服务器之前搭建负载均衡服务。通过负载均衡服务可以把用户的访问请求分发到后台的 web 服务器上。

(1)阿里云的负载均衡服务可以进行四层或者七层负载。

应用若是 tcpip 协议,可以通过四层负载来进行流量的分发和均衡。若应用的是 web基于 htp 的服务,可以通过七层负载进行流量分发。具备负载均衡基础后,就可以动态地扩容应用服务器或 web 服务器。


二、需求场景

1、比如在游戏客户的场景里,通常在中午十二点时服务器的压力会比较大。用户忙了一上午后中午休息,可能玩游戏打怪,这时服务器的压力就会很大。这个场景中需要进行定时的扩展,使得应用服务器和 web 服务器能得以扩容,以承载更大的压力。

2、对于电商平台来说,如阿里巴巴的双十一,这一天的压力会很大。平常可能十台服务器就可以支撑访问,但在秒杀或促销的过程中,可能需要一百台服务器。负载突然增大,需要及时对服务器进行扩容。


三、应对策略

1、超配资源。预测峰值需要多少服务器,若电商一个网站的峰值需要一百台服务器,那就超配资源,按照一百台的经济规模来进行配置。这样做风险最低,但会造成资源的大量浪费。因为在正常访问流量的情况下,只需要十台服务器。

image.png

2、进行人工输出。通过运维人员来进行资源的调度和分配。通过观察到的监控指标如 CPU 或 io,超过警戒线后,再进行资源的分配。这种方式可以在一定程度上减少资源的浪费。但其中隐藏着巨大的风险。当人工判断资源即将耗尽时,若临时加资源的操作耗时过长,可能会导致整个系统的雪崩。如十台服务器要加到十一台或十二台,但在预定时间内没有配置完成,前面十台就要承载巨大的压力,甚至其中某一台可能会出现故障。这时候只有九台来承载压力,更加承载不住,会导致整体的系统雪崩。

image.png

3、最好的模式是由自动的平台判断什么时候弹性地增加资源。阿里云有弹性伸缩服务,可以根据用户的业务需求或时间策略自动调整计算资源的数量。

image.png

比如在图中,可以设定一个条件。当几台服务器的 CPU 平均值大于百分之八十时新增加一系列的服务器;

image.png

当 CPU 的平均负载持续一段时间小于百分之三十时,减少一些服务器。

image.png

通过这样的方式可以使整个架构更加弹性,能够更大程度支撑用户的访问。

除了像 CPU, IO 这样值的判断外,也可以定时。比如打怪,用户十二点打怪,可以在十一点半动态地增加计算。

image.png


四、配置过程

原理分析比较简单,实际上需要很多技术配合。产生的新服务器的配置,一定要与原来已经部署好的服务器的配置相同。应用也要提前配置好。

这些技术在阿里云都是通过自动化的方式来实现的。例如,先把弹性资源即部署好的内容做成镜像。需要产生的动态资源都基于镜像产生。同时,负载均衡服务也能够感知到新的资源的产生,之后把流量分发到这些资源上。配置过程实际上非常简单,设定触发资源扩张或资源扩容的条件,再设定扩容的规模即可。


五、具体效果

1、实际测试。

这个场景中,预先配置好两个服务器来支撑正常的用户访问。当用户的访问突然增大时,机器的 CPU 处于非常高的位置,触发了预设的条件。另外的服务器自动地产生,并且加入到服务的集群里。

image.png

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

image.png

总结

通过云计算技术,可以非常好地进行横向的扩容。但需要具备多项技术的支撑,如负载均衡服务、云服务器资源能够做成镜像、快速弹性地部署等。

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7月前
|
负载均衡 算法 关系型数据库
mysql的弹性扩展和负载均衡
mysql的弹性扩展和负载均衡
124 0
|
4天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
存储 负载均衡 算法
08-微服务技术栈(扩展):负载均衡算法
负载均衡算法作为Redis、MQ、ZK,GateWay等集群、组件必不可少的算法策略,是微服务框架中不可或缺的一部分知识点,本节我们将花费短暂的时间做个了解。
212 0
|
弹性计算 缓存 运维
应用层横向扩展——负载均衡|学习笔记
快速学习应用层横向扩展——负载均衡
150 0
应用层横向扩展——负载均衡|学习笔记
|
4天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
50 0
|
4天前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
45 4
|
3天前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
33 4
解决nginx配置负载均衡时invalid host in upstream报错
|
4天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
4天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结