华为云服务-运维篇-负载均衡介绍与平台算法使用

时间:2022-12-12 10:55:08

1、前言

上一篇我们已经讲过负载均衡相关内容,此篇我们讲解负载均衡的类型以及负载均衡算法等方面内容,带上小板凳,我们上车了。

2、负载均衡的分类

从支持负载均衡的载体来看,可以将负载均衡分为两类:硬件负载均衡、软件负载均衡。
从其应用的地理结构上分为本地负载均衡和全局负载均衡。

2.1、硬件负载均衡

2.1.1、特点

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。硬件负载均衡的市面上主流产品有:F5 和 A10。
2.1.2、优点
功能强大:支持全局负载均衡并提供较全面的、复杂的负载均衡算法。
性能强悍:硬件负载均衡由于是在专用处理器上运行,因此吞吐量大,可支持单机百万以上的并发。
安全性高:往往具备防火墙,防 DDos 攻击等安全功能。
2.1.3、缺点:
成本昂贵:购买和维护硬件负载均衡的成本都很高。
扩展性差:当访问量突增时,超过限度不能动态扩容。

2.2、软件负载均衡

2.2.1、特点
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。
2.2.2、优点

  1. 扩展性好:适应动态变化,可以通过添加软件负载均衡实例,动态扩展到超出初始容量的能力。
  2. 成本低廉:软件负载均衡可以在任何标准物理设备上运行,降低了购买和运维的成本。
    2.2.3、缺点
    1、 性能略差:相比于硬件负载均衡,软件负载均衡的性能要略低一些。
    2、 消耗系统资源:因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键。
    3、软件可扩展性不是很好:受到操作系统的限制及操作系统本身的Bug,往往会引起安全问题。

2.3、本地负载均衡

2.3.1 、简介
本地负载均衡针对本地范围的服务器群做负载均衡。

  1. 本地负载均衡不需要花费高额成本购置高性能服务器,只需利用现有设备资源,就可有效避免服务器单点故障造成数据流量的损失,通常用来解决数据流量过大、网络负荷过重的问题。
  2. 同时它拥有形式多样的均衡策略把数据流量合理均衡的分配到各台服务器。如果需要在现在服务器上升级扩充,不需改变现有网络结构、停止现有服务,仅需要在服务群中简单地添加一台新服务器。

2.4、全局负载均衡

2.4.1、 简介
全局负载均衡针对不同地理位置、不同网络结构的服务器群做负载均衡。
它主要解决全球用户只需一个域名或IP地址就能访问到离自己距离最近的服务器获得最快的访问速度,它在多区域都拥有自己的服务器站点,同时也适用于那些子公司站点分布广的大型公司通过企业内部网(Intranet)达到资源合理分配的需求
全局负载均衡具备的特点:
1、提高服务器响应速度,解决网络拥塞问题,达到高质量的网络访问效果。
2、能够远距离为用户提供完全的透明服务,真正实现与地理位置无关性
3、能够避免各种单点失效,既包括数据中心、服务器等的单点失效,也包括专线故障引起的单点失效。

3、负载均衡算法

3.1 分类介绍

现有的负载均衡算法主要分为静态和动态两类。

  1. 静态负载均衡算法以固定的概率分配任务,不考虑服务器的状态信息,如轮转算法、加权轮转算法等;
  2. 动态负载均衡算法以服务器的实时负载状态信息来决定任务的分配,如最小连接法、加权最小连接法等。
    静态负载均衡算法包括:轮询,比率,优先权

3.2 静态负载

  1. 轮询法(Round Robin)
    就是将用户的请求轮流分配给服务器,就像是挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。
  2. 随机法(Random)
    就是随机选择一台服务器来分配任务。它保证了请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子。但是随着任务量的增大,它的效果趋向轮询后也会具有轮询算法的部分缺点。
  3. 比率(Ratio)
    给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。
  4. 优先权(Priority):
    给所有服务器分组,给每个组定义优先权,BIG-IP 用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。

3.3 动态负载

  1. 最小连接法(Least Connection)

最小连接法,将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。

  1. 最快模式(Fastest)

传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP
就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

  1. 观察模式(Observed)

连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

  1. 预测模式(Predictive)

BIG-IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(被BIG-IP
进行检测)

  1. 动态性能分配(Dynamic Ratio-APM)
    BIG-IP 收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。

  2. 动态服务器补充(Dynamic Server Act.)
    当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。

  3. 服务质量(QoS)
    按不同的优先级对数据流进行分配。

  4. 服务类型(ToS)
    按不同的服务类型(在Type of Field中标识)负载均衡对数据流进行分配。

  5. 规则模式
    针对不同的数据流设置导向规则,用户可自行。

以上,就是目前实现负载均衡的主流算法。不同的负载均衡服务器会选择不同的算法。就像飞机场和火车站虽是公共运输行业但可能会选用不同的引导策略一样。

5、华为云-弹性负载均衡类型

弹性负载均衡支持独享型负载均衡、共享型负载均衡。
华为云服务-运维篇-负载均衡介绍与平台算法使用
独享型负载均衡:独享型负载均衡实例资源独享,实例的性能不受其它实例的影响,您可根据业务需要选择不同规格的实例。
共享型负载均衡:属于集群部署,实例资源共享,实例的性能会受其它实例的影响,不支持选择实例规格。共享型负载均衡就是原增强型负载均衡。

6、华为云- ELB

华为云上 进行申请弹性负载均衡、添加实例监听器、应用服务器组 大家可以自行去实操。此文不在讲解,我们重点讲解算法相关内容。

6.1 添加转发策略

6.1.1、概述

  大家可以通过添加转发策略支持自行设定的域名和URL,将来自不同域名或者不同URL的请求转发到不同的后端云服务器组处理。
  该功能目前支持前端协议为HTTP和HTTPS的监听器。监听器已开启重定向功能,则不可添加转发策略。
参数 说明 例子
名称 转发策略的名称。只能由中文字符、英文字母、数字、“ _”或“ -”组成,且长度小于等于64个字符。 H1Pick-Jd4Cc
类型 设置转发策略时指定的类型,包括:域名、 URL和域名&URL三种。 域名
域名 “类型”选择“ URL”时无需配置该参数。触发转发的域名,默认支持精确匹配类型。域名可包含英文字母、数字、“ -”或者“ .”,必须以字母或数字开头,且至少包含2个字符串,字符串之间使用“ .”进行分隔,单个字符串长度不超过63个字符,总长度不超过100个字符。 www.baidu.com
URL “类型”选择“域名”时无需配置该参数。触发转发的URL,以“ /”开头的字符串,字符串由英文字母、数字和特殊字符/-.%?#&=组成。 /login.html
URL匹配规则 “类型”选择“域名”时无需配置该参数。指判断转发策略生效的标准,有精确匹配、前缀匹配和正则匹配3种方式。
● 精确匹配:请求的URL和设定的URL完全一致。例如请求的URL为/login.php,则设定的URL也必须为/login.php才能匹配成功。
● 前缀匹配:请求的URL与设定的URL开头匹配,没有位数限制。例如请求的URL为/login.php,则设定的URL为/login或/log都可以匹配成功。
● 正则匹配:请求的URL和设定的URL正则表达式匹配。
精确匹配
转发对象 必须是协议类型为HTTP,且未被监听器和转发策略使用的后端云服务器组,是弹性负载均衡实例的必要组成部分,用于接收并处理监听器转发的请求。说明如果下拉框中无可选转发对象,请单击该参数框后面的“后端云服务器组”,然后参考添加后端云服务器组。 pool-qlw0
描述 转发策略的说明信息。说明长度范围小于等于64个字符,不能包含><。 -

6.1.2、实操步骤

  1. 进入目标弹性负载均衡监听器页面。
    华为云服务-运维篇-负载均衡介绍与平台算法使用

  2. 添加转发策略,点击转发策略旁“添加”按钮,根据界面提示选填转发策略信息,确认无误后点击确定添加策略。
    华为云服务-运维篇-负载均衡介绍与平台算法使用
    华为云服务-运维篇-负载均衡介绍与平台算法使用
    华为云服务-运维篇-负载均衡介绍与平台算法使用

6.1.3、状态检查

给监听器添加完转发策略后,检查策略关联的服务器组中的服务状态是否为在线状态。
实操步骤

  1. 进入目标弹性负载均衡实例后端服务器组页面。
    华为云服务-运维篇-负载均衡介绍与平台算法使用
  2. 检查服务器状态,确认好健康检查配置中的检查路径,依次检查后端服务器的健康检查结果是否为正常。
    华为云服务-运维篇-负载均衡介绍与平台算法使用

    6.1.4、访问校验

为了检测ELB监听器转发策略已生效,此处我们使用浏览器访问和curl来进行校验。
首先需要获取ELB的服务地址和弹性IP进入到目标弹性服务器详情界面。
在基本信息中获取ELB服务地址和弹性IP。

6.1.4.1 浏览器校验

我们使用浏览器根据转发策略通过ELB的弹性IP来进行访问校验。

6.1.4.2 前端校验

通过浏览器访问返回的信息是前端组件显示的内容。
华为云服务-运维篇-负载均衡介绍与平台算法使用
6.1.4.3 后端校验
通过浏览器访问后端接口文档返回的是后端组件的内容。
华为云服务-运维篇-负载均衡介绍与平台算法使用

6.1.4.4 curl 校验
我们通过 ssh登录一台同VPC下的弹性服务器(ECS),使用curl命令根据转发策略通过ELB“服务地址”来进行访问校验。
• 前端校验
可以看到回显的内容是前端组件的内容。

华为云服务-运维篇-负载均衡介绍与平台算法使用
• 后端校验
可以看到回显的内容是后端组件的内容。
华为云服务-运维篇-负载均衡介绍与平台算法使用

7、总结

今天就先讲到这里,感谢大家阅读,创作不易,希望您喜欢的同时动动小手点赞关注,在此先谢过。