【云中沙箱】如何使用SLB实现持续性高并发访问?

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
.cn 域名,1个 12个月
简介: 如何使用SLB实现持续性高并发访问? 云中沙箱实验教您如何提高云服务器的响应速度。

如何使用SLB实现持续性高并发访问?  云中沙箱实验教您如何提高云服务器的响应速度。 

 

云中沙箱,阿里云官方实验平台。网址:http://lab.aliyunedu.net  

 

一、基本概念 

 

阿里云负载均衡 

  • 简介 

负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 

  • 架构

负载均衡服务主要有三个核心概念: 

1)LoadBalancer:负载均衡实例。 

2)Listener:用户定制,定义了负载均衡策略和转发规则。 

3)BackendServer:后端的一组ECS。 

 

 649bb90deca6a193b5e75e96c4a25db688fb6357

 

  • 特点

1)负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。 

2)负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。 

3)负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。 

 

阿里云负载均衡健康检查 

  • 简介

    负载均衡通过健康检查来判断后端 ECS 上的业务可用性。用户开启健康检查功能后,当后端某台 ECS 健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的 ECS 上;而当该 ECS 恢复正常运行时,负载均衡会将其自动恢复到对外或对内的服务中。    负载均衡健康检查机制提高了前端业务整体可用性,避免了后端 ECS 异常对总体服务的影响。    如果用户业务对负载有高敏感性,高频率的健康检查探测可能会对用户正常业务访问造成影响。用户可以结合业务情况,通过降低健康检查频率、增大健康检查间隔、7层检查修改为4层检查等方式,来降低对业务的影响。但为了保障业务的持续可用,不建议关闭健康检查。 

  • 处理原理

负载均衡通过健康检查来探测后端 ECS 的可用性。开启健康检查功能后,当后端某个 ECS 健康检查出现异常时,来自 Client 的新请求将不会再被转发到该 ECS,直到健康检查检测到该 ECS 上业务恢复正常。 

 

0202509d7dd796afbb32a2b2f5c4c6bff4852ff8

 

LVS 集群或 Tengine 集群内的相关节点服务器同时承载了数据转发及健康检查职责。 

当前集群服务器 IP 段为负载均衡系统IP地址段包括:10.159.0.0/16,10.158.0.0/16,10.49.0.0/16、100.109.0.0/16和100.97.0.0/16。如果后端 ECS 启用了 iptables 等访问控制,需要在内网网卡上针对上述 IP 段做访问放行。 

根据负载均衡转发策略,客户端相关访问请求被均分到 LVS 集群内不同服务器(如果是 7 层服务,则如前述说明所述,相关请求被进一步转发到 Tengine 集群)。 

LVS 集群内不同服务器分别【独立、并行的】根据负载均衡策略进行数据转发和健康检查操作。 

如果某一台 LVS 节点服务器对后端某一台 ECS 健康检查失败,则该 LVS 节点服务器将不会再将新的客户端请求分发给相应的异常 ECS 服务器;LVS 集群内所有服务器同步进行该操作,相互之间没有关联及影响。 

  • 7层服务健康检查机制(HTTP或HTTPS协议)

对7层(HTTP或HTTPS协议)服务,负载均衡的健康检查通过 HTTP HEAD 探测来获取状态信息。相关机制如下图所示:注:使用 HTTPS 协议时,证书在负载均衡上完成处理后完结。负载均衡与后端ECS之间的数据交互(包括健康检查数据和业务交互数据),不再通过 HTTPS 进行传输,以提高系统性能。 

 

29ce91c14799791978fbc9f0c620610b00f610d1

使用说明如下: 

1)Tengine 节点服务器根据负载均衡实例健康检查属性设置,向后端 ECS 的内网 IP+【健康检查端口】+【检查路径】发送 HTTP HEAD 请求(包含【域名】属性)。 

2)后端 ECS 服务器收到请求后,根据相应服务的运行情况,返回 HTTP 状态码。 

3)如果在【响应超时时间】之内,Tengine 节点服务器没有收到后端 ECS 返回的上述信息,则认为服务无响应,判定健康检查失败。 

4)如果在【响应超时时间】之内,Tengine 节点服务器成功接收到后端 ECS 返回的上述信息,则将该返回信息与【正常状态码】属性所勾选的状态码进行比对。如果匹配则判定健康检查成功,反之则判定健康检查失败。 

5)健康检查间隔和重试次数根据相应负载均衡实例属性设置进行相应设定。 

  • 策略配置 

用户可以通过控制台或 API 设置负载均衡服务监听的健康检查策略。当前健康检查可选方式包括 TCP、UDP 和 HTTP(注:HTTPS协议采用 HTTP 方式进行健康检查),不同检查方式下支持的策略属性有所不同。通过管理控制台配置如下图: 

 51a299bc9c37b03bbc61019ba8581f0ca2c295d0

 

1)域名:只有 HTTP 检查方式时才有。非必填属性。配置后,负载均衡会将相应值以 domain 属性传递到后端服务器,以便后端服务器结合该值来配置域名访问控制。没有填写时,默认使用各后端服务器的内网 IP 为域名进行传递。 

2)检查端口:非必填属性。健康检查服务访问后端时的探测端口。默认值为服务监听配置时的【后端协议 [端口]】。 

3)检查路径:只有 HTTP 检查方式时才有。非必填属性。用于手工指定健康检查页面文件的 URI,建议对静态页面进行检查。默认值为根目录“/”。 

4)响应超时时间: 必填属性。健康检查响应的最大超时时间,输入范围 1-300 秒,默认为 5 秒。后端 ECS 在相应时间内没有正确响应,则判定为健康检查失败。 

5)健康检查间隔:必填属性。进行健康检查的时间间隔; 输入范围 1-50 秒,默认为 2 秒。、注:如前文所述,LVS 集群内所有节点,都会独立、并行的遵循该属性去对后端 ECS 进行定期健康检查。由于各 LVS 节点的检查时间并不同步,所以,如果从后端某一 ECS 上进行单独统计,会发现来自负载均衡的健康检查请求在时间上并不会遵循上述时间间隔。 

6)不健康阈值:必填属性。表示同一 LVS 节点服务器针对后端同一 ECS 服务器,从成功到失败的【连续】健康检查失败次数。可选值 2~10,默认为 3 次。 

7)健康阈值:必填属性。表示同一 LVS 节点服务器针对后端同一 ECS 服务器,从失败到成功的【连续】健康检查成功次数。可选值 2~10,默认为 3 次。 

8)正常状态码: 只有 HTTP 检查方式时才有。非必填属性。指定用户判断健康检查正常的 HTTP 状态码。可选值为 http_2xx、http_3xx、http_4xx、http_5xx,可多选。默认情况或不做任何选择时,值置为 http_2xx。 

 

 

二、更多实验信息 

 

如何使用SLB实现持续性高并发访问?   

网址:https://edu.cloudcare.cn/courses/11bc5c2e31a3429082a2b012fe08034d/detail

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
SpringCloudAlibaba 负载均衡 算法
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
363 0
|
3月前
|
负载均衡 应用服务中间件 nginx
搭建域名访问环境二(负载均衡到网关)
这篇文章讲述了如何配置Nginx实现域名访问环境,通过负载均衡将请求从Nginx反向代理到服务网关,并提供了详细的配置步骤和测试验证方法。
搭建域名访问环境二(负载均衡到网关)
|
5月前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【6月更文挑战第30天】Java分布式锁在高并发下确保数据一致性,通过Redis的SETNX、ZooKeeper的临时节点、数据库操作等方式实现。优化策略包括锁超时重试、续期、公平性及性能提升,关键在于平衡同步与效率,适应大规模分布式系统的需求。
169 1
|
4月前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【7月更文挑战第1天】在分布式系统中,Java分布式锁解决了多节点共享资源的同步访问问题,确保数据一致性。常见的实现包括Redis的SETNX和过期时间、ZooKeeper的临时有序节点、数据库操作及Java并发库。优化策略涉及锁超时、续期、公平性及性能。选择合适的锁策略对高并发系统的稳定性和性能至关重要。
176 0
|
6月前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【4月更文挑战第17天】Java分布式锁是解决高并发下数据一致性问题的关键技术,通过Redis、ZooKeeper、数据库等方式实现。它确保多节点共享资源时的同步访问,防止数据不一致。优化策略包括锁超时重试、续期、公平性和性能优化。合理设计分布式锁对支撑大规模分布式系统至关重要。
573 2
|
关系型数据库 MySQL Java
RDS MySQL高并发访问下的系统稳定性
RDS MySQL支持线程池管理,只需要少量线程完成活跃会话的任务即可,避免突发流量导致的业务稳定性问题。
|
负载均衡 网络协议 Dubbo
高并发系统设计之负载均衡
通过负载均衡,我们能提高系统的可用性,提升响应速度,同时也能防止任何单一的资源过度使用。
325 0
|
负载均衡 网络协议 安全
华为19级大佬10年心血终成百页负载均衡高并发网关设计实战文档
负载均衡(LoadBalance)的字面意思是将工作负载分担到多个工作单元上进行执行,它建立在现有网络结构之上,是构建分布式服务、大型网络应用的关键组件。 近十几年来,负载均衡技术层出不穷,令人眼花缭乱。如果问身边的技术人员什么是负载均衡,我们可能会得到许多不同的答案。
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(1)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(1)
140 0
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(2)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(2)
118 0

热门文章

最新文章

  • 1
    高并发场景下,到底先更新缓存还是先更新数据库?
    66
  • 2
    Java面试题:解释Java NIO与BIO的区别,以及NIO的优势和应用场景。如何在高并发应用中实现NIO?
    74
  • 3
    Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
    68
  • 4
    Java面试题:如何实现一个线程安全的单例模式,并确保其在高并发环境下的内存管理效率?如何使用CyclicBarrier来实现一个多阶段的数据处理任务,确保所有阶段的数据一致性?
    62
  • 5
    Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
    55
  • 6
    Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
    69
  • 7
    在Java中实现高并发的数据访问控制
    42
  • 8
    使用Java构建一个高并发的网络服务
    29
  • 9
    微服务06----Eureka注册中心,微服务的两大服务,订单服务和用户服务,订单服务需要远程调用我们的用,户服务,消费者,如果环境改变,硬编码问题就会随之产生,为了应对高并发,我们可能会部署成一个集
    37
  • 10
    如何设计一个秒杀系统,(高并发高可用分布式集群)
    129