网站首页 > 技术文章 正文
前言
前两天公司领导让我调研云服务负载均衡,并给我们即将上线的服务配置起来。确切地说,之前我只了解过NGINX软件负载均衡的相关概念,还没接触过云服务的负载均衡。所以,本篇算作是技术调研、操作配置的实践记录。
负载均衡服务是一种将网络流量或工作负载均匀分配到多个服务器或资源上的技术,以提高系统的可用性、性能和可扩展性。常见的负载均衡分为:
- 硬件负载均衡器,如:F5 BIG-IP、A10 Networks
- 软件负载均衡器,如:Nginx、HAProxy
- 云负载均衡服务,如:阿里云负载均衡SLB、腾讯云负载均衡、AWS Elastic Load Balancing(亚马逊)
一、SLB的相关概念
1.SLB的概念
负载均衡(server load balancer)是将访问流量依据转发策略分发到后台多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
- 通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的后台服务池。并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。
- 默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用的防护能力。
2.SLB的组成部分
- 负载均衡实例:一个负载均衡实例是一个运行的负载均衡服务器,用来接收流量并将其分配给后端服务器;
- 监听:监听用来检查客户端请求,并将请求转发给后端服务器,监听也会对后端服务器进行健康检查;
- 后端服务器:一组接收前端请求的ECS实例,各个ECS实例的操作系统及配置可以不一致,但提供的服务内容和数据必须一致;
3.SLB的优势
- 高可用:采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾。
- 可扩展:可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 低成本:与传统硬件负载均衡系统高投入相比,成本可下降60%。
- 安全:结合云盾,可提供5Gbps的防DDoS攻击能力。
- 高并发:集群支持亿级并发连接,单实例提供千万级并发能力。
4.SLB的应用场景
负载均衡提供以下多个应用场景:
- 应用于高访问量的业务:如果应用的访问量很高,可以通过配置监听规则将流量分发到不同的ECS实例上;
- 扩展应用程序:可以根据业务发展的需要,随时添加和移除ECS实例来扩展应用系统的服务能力;
- 消除单点故障:可以在负载均衡实例下添加多台ECS实例,当其中一部分ECS实例发生故障后,将请求分发给其他正常运行的ECS实例;
- 同城容灾(多可用区容灾):使用负载均衡时,可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾;
- 跨地域容灾:可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS,上层利用云解析做智能DNS。
二、SLB的原理
1.SLB的基础架构
负载均衡采用集群部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提供冗余,保证服务的稳定性。
2.SLB中提供的功能
SLB提供的常用功能如下:
三、SLB的配置
1.SLB的配置流程
① 准备工作
在开始搭建负载均衡前,需要确定负载均衡实例的以下内容:
- 地域:地域不能改,不能跨地域使用
- 类型:公网SLB还是内网SLB
- 付费模式:包年包月还是按月付费
② 配置步骤
SLB的配置一般遵循以下步骤:
- 创建负载均衡实例
- 添加监听
- 添加后端服务器
- 域名解析(可选)
2.SLB使用的注意事项
① 规划实例地域
- 为了减少延迟并提高下载速度,建议选择离客户最近的地域
- 为了提高更加稳定可靠的服务,建议选择提供主备可用区的地域
- 由于负载均衡不支持跨地域部署,因此应选择与后端ECS实例相同的地域
② 选择实例的网络类型
- 如果需要使用负载均衡分发来自公网的请求,选择创建公网负载均衡实例
- 如果需要使用负载均衡分发来自内网的请求,选择创建死亡负载均衡实例
③ 选择协议类型
- 四层监听将请求直接转发给后端服务器,不会修改标头(基于端口号区分)
- 七层监听原理上是反向代理的一种实现(基于协议进行区分)
④ 准备后端服务器
- 负载均衡不支持跨地域部署,确保ECS实例的所属地域和负载均衡实例的所属地域相同
- 负载均衡本身不会限制后端ECS实例使用哪种操作系统,只要ECS实例中的应用服务部署是相同且数据一致即可
下一篇预告《SLB操作配置实战》
- 上一篇: 负载均衡最全详解(看这篇就够了)
- 下一篇: 阿里面试:负载均衡的应用场景有哪些?哪5大作用?
猜你喜欢
- 2025-01-06 对高可用集群构建的思考
- 2025-01-06 微服务、集群、分布式的区别是什么?
- 2025-01-06 浅聊高可用技术在网络中的应用
- 2025-01-06 高可用、负载均衡 集群部署方案:Keepalived + Nginx + Tomcat
- 2025-01-06 负载均衡,他用一篇文章告诉你(万字分析)
- 2025-01-06 高并发之负载均衡
- 2025-01-06 有软件负载均衡,也有硬件负载均衡,选择哪个?
- 2025-01-06 使用MySQL Router实现高可用、负载均衡、读写分离
- 2025-01-06 四七层负载均衡的区别
- 2025-01-06 一次 Keepalived 高可用的事故,让我重学了一遍它
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)