• 负载均衡(SLB与ELB)


    前言

    由于性能压测以及后续对全链路压测的探索需要,对公司的架构需要有一定的了解,以此来记录一些运维相关的知识

    简介

    无论是在阿里云服务器上亦或者是在亚马逊服务器上,当存在多个ECS服务器时,往往都会在用户请求前进入一个叫负载均衡服务器的东西,在阿里云上被称作SLB(Server Load Balancer)在亚马逊上被称作ELB(Elastic Load Balance),实际上他们的作用都是一样的

    作用

    • 主要用途:将访问流量根据分配策略分发到后端多台服务器的流量分发控制服务
    • 其他用途:负载均衡服务器默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。

    在这里插入图片描述

    基本组成部分

    • 负载均衡器:接受来自客户端的传入流量并将请求转发到一个或多个可用区中的后端服务器。
    • 监听器:您可以向您的弹性负载均衡器添加一个或多个监听器。监听器使用您配置的协议和端口检查来自客户端的连接请求,并根据您定义的分配策略将请求转发到一个后端服务器组里的后端服务器。
    • 后端服务器:每个监听器会绑定一个后端服务器组,后端服务器组中可以添加一个或多个后端服务器。后端服务器组使用您指定的协议和端口号将请求转发到一个或多个后端服务器。可以为后端服务器配置流量转发权重,不能为后端服务器组配置权重。您可以开启健康检查功能,对每个后端服务器组配置运行状况检查。当后端某台服务器健康检查出现异常时,弹性负载均衡会自动将新的请求分发到其它健康检查正常的后端服务器上;而当该后端服务器恢复正常运行时,弹性负载均衡会将其自动恢复到弹性负载均衡服务中。

    在这里插入图片描述

    负载均衡应用场景(以ELB为例)

    1. 使用ELB为高访问量业务进行流量分发

    对于业务量访问较大的业务,可以通过ELB设置相应的分配策略,将访问量均匀的分到多个后端服务器处理。例如大型门户网站,移动应用市场等。

    同时您还可以开启会话保持功能,保证同一个客户请求转发到同一个后端服务器。从而提升访问效率,如图1所示。
    在这里插入图片描述

    2. 使用ELB和AS为潮汐业务弹性分发流量

    对于存在潮汐效应的业务,结合弹性伸缩服务,随着业务量的增长和收缩,弹性伸缩服务自动增加或者减少的ECS实例,可以自动添加到ELB的后端云服务器组或者从ELB的后端云服务器组移除。负载均衡实例会根据流量分发、健康检查等策略灵活使用ECS实例资源,在资源弹性的基础上大大提高资源可用性,如图2所示。例如电商的“双11”、“双12”、“618”等大型促销活动,业务的访问量短时间迅速增长,且只持续短暂的几天甚至几小时。使用负载均衡及弹性伸缩能最大限度的节省IT成本。

    在这里插入图片描述

    3. 使用ELB消除单点故障

    对于可靠性有较高要求的业务,可以在负载均衡器上添加多个后端云服务器。负载均衡器会通过健康检查及时发现并屏蔽有故障的云服务器,并将流量转发到其他正常运行的后端云服务器,确保业务不中断,如图3所示。
    例如官网,计费业务,Web业务等。
    在这里插入图片描述

    4. 使用ELB跨可用区特性实现业务容灾部署

    对于可靠性和容灾有很高要求的业务,弹性负载均衡可将流量跨可用区进行分发,建立实时的业务容灾部署。即使出现某个可用区网络故障,负载均衡器仍可将流量转发到其他可用区的后端云服务器进行处理,如图4所示。
    例如银行业务,警务业务,大型应用系统等。

    在这里插入图片描述

    入网流量路径(以SLB为例)

    对于入网流量,负载均衡会根据用户在控制台或API上配置的转发策略,对来自前端的访问请求进行转发和处理,数据流转如下图所示

    在这里插入图片描述

    • TCP/UDP协议和HTTP/HTTPS协议的流量都需要经过LVS集群进行转发。
    • LVS集群内的每一台节点服务器均匀地分配海量访问请求,并且每一台节点服务器之间都有会话同步策略,以保证高可用。如果相应的负载均衡实例服务端口使用的是四层协议(TCP或UDP),那么LVS集群内每个节点都会根据负载均衡实例负载均衡策略,将其承载的服务请求按策略直接分发到后端ECS服务器。如果相应的负载均衡实例服务端口使用的是七层HTTP协议,那么LVS集群内每个节点会先将其承载的服务请求均分到Tengine集群,Tengine集群内的每个节点再根据负载均衡策略,将服务请求按策略最终分发到后端ECS服务器。如果相应的负载均衡实例服务端口使用的是七层HTTPS协议,与上述HTTP处理过程类似,差别是在按策略将服务请求最终分发到后端ECS服务器前,先调用Key Server进行证书验证及数据包加解密等前置操作。

    出网流量路径

    负载均衡SLB和后端ECS之间是通过内网进行通信的

    在这里插入图片描述

    关于容灾说明

    1. 同城容灾
    2. 异地容灾
    3. 本地容灾

    同城容灾 是在同城或相近区域内 ( ≤ 200K M )建立两个数据中心 : 一个为数据中心,负责日常生产运行 ; 另一个为灾难备份中心,负责在灾难发生后的应用系统运行。同城灾难备份的数据中心与灾难备份中心的距离比较近,通信线路质量较好,比较容易实现数据的同步 复制 ,保证高度的数据完整性和数据零丢失。同城灾难备份一般用于防范火灾、建筑物破坏、供电故障、计算机系统及人为破坏引起的灾难。

    处理机制:
    在这里插入图片描述

    异地容灾 主备中心之间的距离较远 (> 200KM ) , 因此一般采用异步镜像,会有少量的数据丢失。异地灾难备份不仅可以防范火灾、建筑物破坏等可能遇到的风险隐患,还能够防范战争、地震、水灾等风险。由于同城灾难备份和异地灾难备份各有所长,为达到最理想的防灾效果,数据中心应考虑采用同城和异地各建立一个灾难备份中心的方式解决。

    处理机制:
    在这里插入图片描述

    本地容灾 是指在本地机房建立容灾系统,日常情况下可同时分担业务及管理系统的运行,并可切换运行;灾难情况下可在基本不丢失数据的情况下进行灾备应急切换,保持业务连续运行。与异地灾备模式相比较,本地双中心具有投资成本低、建设速度快、运维管理相对简单、可靠性更高等优点;异地灾备中心是指在异地建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业务的恢复。

    优势

    高可用
    采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
    根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
    可扩展
    您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
    低成本
    与传统硬件负载均衡系统高投入相比,成本可下降60%。
    安全
    结合云盾,可提供5Gbps的防DDoS攻击能力。
    高并发
    集群支持亿级并发连接,单实例提供千万级并发能力。

  • 相关阅读:
    eub:SpringSecurity的使用(二)
    java 使用策略模式减少if
    MyBatis注解开发的多表操作
    Javascript之我也来手写一下Promise
    毕设必备!Python智慧教室:考试作弊系统、动态点名等功能
    【论文爬虫】自动将论文详细信息直送notion并自动下载(含源码)
    智能AI写作系统+ChatGPT程序源码搭建部署教程+支持GPT4.0/AI绘画
    RPA的命令库与子程序是什么?
    https跳过SSL认证时是不是就是不加密的,相当于http?
    【Luogu P1450】[HAOI2008] 硬币购物(dp,容斥)
  • 原文地址:https://blog.csdn.net/Python_BT/article/details/126785831