华为云服务-运维篇-负载均衡介绍与平台算法使用(代码片段)

风一样的美狼子 风一样的美狼子     2022-12-16     166

关键词:

文章目录

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、总结

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

负载均衡调度算法追溯

...溯原因    根据同事信息反馈:教育云平台服务器对外提供服务请求不均衡,其中一台服务器对外提供服务数量远大于其他服务器,锁定出现问题原因在于出口负载均衡调度器的调度算法,针对此现象组织运维小团... 查看详情

云小课|华为云kyon之elb混合负载均衡

摘要:本文介绍在华为云KYON(KeepYourOwnNetwork)企业级云网络解决方案中,弹性负载均衡服务提供混合负载均衡功能,支持使用公有云的负载均衡绑定华为云上和IDC,实现云上云下业务无缝融合和资源共享。本文分享自华为云社... 查看详情

zabbix实战之运维篇zabbix监控平台的简单性能调优

...控平台的简单性能调优一、Zabbix性能优化介绍1.造成Zabbix服务器变慢原因2.Zabbix性能调优的方法二、检查Zabbix服务器的资源占用情况1.检查Zabbix各组件容器的资源占用情况2.查看Zabbix系统的当前负载状态3.对cpu和内存的使用率进行... 查看详情

**云负载均衡的介绍和使用场景**

负载均衡服务器的向上扩展和向外扩展向上扩展(垂直扩展):向单一节点条件硬件设备或其升级为一个大型节点。向外扩展(水平扩展):添加更多节点并将数据及工作负载分布于这些节点当中。向上扩展受限于自身的物理硬... 查看详情

负载均衡技术(二)———常用负载均衡服务介绍

...易技术产品运营经验。在上一篇文章中,介绍了负载均衡服务,常用的负载均衡服务器以及负载均衡服务在公司的应用情况。这一篇文章会对上篇提到的负载均衡服务器进行较为深入的分析,对其主要功能,优缺点,使用场景进... 查看详情

阿里云容器服务:负载均衡与容器的关系

最近我们开始尝试基于阿里云容器服务使用Docer进行生产环境的自动化部署,首先遇到的一个问题是——如何部署负载均衡(这里的负载均衡是指阿里云负载均衡SLB)?面对这个问题,我们首先关注的是这个问题——... 查看详情

k8s部署---多节点部署与负载均衡搭建(代码片段)

...的高可用性,kubenetes平台是由master中心管理机制,由master服务器调配管理各个节点服务器,在之前的文章中我们搭建的是单节点(一个master服务器)的部署,当master服务器宕机时,我们的搭建的平台也就无法使用了,这个时候我... 查看详情

微信群分享预告kubernetes结合lvs实现高可用负载均衡与集群外服务访问

主题介绍Kubernetes结合LVS实现高可用负载均衡与集群外服务访问分享时间: 9月26日 (周二)20:00-20:40(40分钟)互动时间:20:40-21:00(20分钟)分享群:有容云Docker技术交流群参与方式:关注公众... 查看详情

企业运维之lvs负载均衡和高可用(代码片段)

...VS的DR模式1.LVS简介LVS(LinuxVirtualServer)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项 查看详情

企业运维之lvs负载均衡和高可用(代码片段)

...VS的DR模式1.LVS简介LVS(LinuxVirtualServer)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项 查看详情

网关开发5.openresty自定义负载均衡与流量转发(代码片段)

...结扩展ip_hashurl_hash背景静态的nginx配置需要将负载均衡的服务节点信息都配置在配置文件中。现在微服务或云服务都会接入一些服务发现或者云控平台场景,经常需要更换节点,如果每次都要更新配置并且重启服务是无法接受的... 查看详情

linux企业运维——lvs负载均衡(代码片段)

...法简介1、LVS简介LVS(LinuxVirtualServer)即Linux虚拟服务器,是一个虚拟的服务器集群系统& 查看详情

负载均衡进阶:slb常见问题解决方法

...基本概念回顾SLB是什么SLB是阿里云推出的一款云负载均衡服务,其主要针对于多台云服务器进行流量分发,能够将业务流量分发到由多台云服务器所组成的后端服务器池上去,以此来提升系统的处理能力。负载均衡所解决的问题... 查看详情

魅族容器云平台自动化运维实践

魅族容器云平台主要是基于k8s的技术。将从以下六个方面介绍魅族容器云的实践过程,分别是基本介绍、k8s集群、容器网络、外部访问4/7层负载均衡、监控/告警/日志、业务发布/镜像/多机房。1、基本介绍魅族云平台的定位是私... 查看详情

aws云计算平台工作使用中的心得

...运维架构师、高级运维开发工程师,《构建高可用可Linux服务器》、《Linux集群和自动化运维》作者,ChinaUnix论坛“集群和高可用”及“监控及自动化运维”版版主。从事云计算和电子商务网站运维工作10多年,在Linux集群、自动... 查看详情

企业运维之七层负载均衡--haproxy(代码片段)

企业运维之七层负载均衡--Haproxy1.基础介绍2.负载均衡的类型3.Haproxy的部署3.1Haproxy实现负载均衡和监控3.2日志采集3.3调度算法3.5设定备机4.Haproxy的访问控制4.1通过调度器访问不同后端4.2用户访问黑白名单设置4.3读写分离5.haproxy的... 查看详情

云服务器ecs实战一文掌握负载均衡服务原理及配置方法(代码片段)

...载均衡基本原理概述协议/端口轮询策略会话保持二、云服务器ECS负载均衡相关配置协议&监听配置后端服务器配置健康检查配置测试在上期文章中,介绍了负载均衡的概述及优势,并详细演示了阿里云服务器负载均衡... 查看详情

linux运维之lvs(一)

...提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载、带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性和可用性。二、搭建负载均衡服务的需求:1)把单台计算机无法承受的大规模的并发访问... 查看详情