草庐IT

【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法

敬 之 2023-09-07 原文


上期文章中,介绍了负载均衡的概述及优势,并详细演示了阿里云服务器负载均衡服务的选型与购买配置。本期文章我们将对负载均衡的实现原理进行详细介绍,并对实例演示具体的配置操作,包括基础配置、健康检查配置、后端服务配置。

一、负载均衡基本原理概述

协议/端口

对于负载均衡的策略来说,用户是先访问我们的域名,进而访问到域名所解析到的负载均衡公网 IP,随后负载均衡再进行一层转发,转发至后端服务器。转发过程中的协议可由我们自己根据情况来定义。


比如使用 Http 协议类型,用户想要在前端访问到负载均衡,我们就需要配置 Http 协议与 80 端口,负载均衡也是使用 Http 协议转发至后台服务器,那么后端启用的服务或者监听也需要使用 Http 协议来进行匹配。也就是说前端与后端的协议类型都是相对应的。

轮询策略

前端与后端服务之间通过 轮询策略 来连接。它决定着负载均衡通过什么样的策略对后端服务器进行流量分发,分为轮询、加权轮询、加权最小连接数三种模式。


轮询 模式指前端通过海量流量来访问负载均衡,随后负载均衡将流量均匀的进行分发至服务器。比如将一堆苹果分给若干个孩子,从第一个孩子一人一个的往下发,发到最后一个孩子手里之后再返回来从第一个孩子开始一人一个的发。


加权轮询 模式在轮询的基础上加入了“权重”,为每一个服务器赋予权重值,根据权重来进行流量的分配,权重值越高,流量也越多。

加权最小连接数 模式在加权的基础之上又增添了最小连接数,在设置权重值的同时可根据该服务器的承受压力动态调整分配效果,如果某一服务器的流量较少,负载均衡则会考虑是否将一些流量分配过来。

会话保持

在负载均衡的高级配置中,还有一个属性叫做 会话保持。负载均衡按照轮询策略进行流量分发时,如果设置了会话保持,负载均衡将在固定的一段时间内将某一特定 IP 分发给某一个特定服务器。如下 IP1 分发给 服务器 1,IP2 分发给服务器 2,IP3 分发给服务器 3。


针对会话保持功能,TCP 协议会话保持基于 IP,只按照客户端的 IP 来进行负载均衡策略,用户从特定的 IP 访问也将访问到固定的服务。Http 协议会话保持基于 Cookie,每一个用户都有一个自己的 Cookie 信息,不同的用户进行访问时将根据他的 Cookie 信息来决定访问到哪一个服务,即使它们是通过同一个 IP 访问进来的。

二、云服务器 ECS 负载均衡相关配置

回到负载均衡控制台,已经购买成功的负载均衡服务如下,在控制台中以实例的方式展示;


点击“点我开始配置”选项,即可进入配置向导,在这里我们基于 Http 协议进行配置。可以看到共有四部分配置:

  1. 协议&监听
  2. 后端服务器
  3. 健康检查
  4. 配置审核

协议&监听配置

如下,后端协议使用 Http 协议的 80 端口;


在高级配置中,可选择调度算法、会话保持等功能,在这里如何没有特殊需要默认选项即可;


这就是协议&监听模块,然后点击“下一步”。

后端服务器配置

添加后端服务器可用于处理负载均衡接收到的访问请求,一台 ECS 再加上它部署的应用服务以及代码,就构成了一个完整的后端服务器。通常后台服务不止一个,如果我们一个一个的手动去部署的话,效率会很低,这时候就可以将线上已经运行好的 ECS 打包成镜像,通过镜像来生成多个后台服务。

首先在同一个区域新建 ECS 实例,来到负载均衡业务配置向导的第二步,有 虚拟服务器组默认服务器组主备服务器组 三种后端服务器供我们选择;

主备服务器即主服务器和备用服务器,主服务器来接收请求;备用服务器仅用来做备份,不对外提供服务,只有当主服务器故障无法提供服务时,备用服务器才会启用。当主服务器恢复后,备用服务器也再次回到备用状态。

虚拟服务器类似 nginx、apache 等服务,每个负载均衡实例可以创建多个虚拟服务器组,虚拟服务器组可关联到监听或转发规则,实现将不同业务转发到不同的后端服务器的功能。


我们这里使用默认服务器组,默认服务器是最常用的一种服务器类型,我们已经部署好的服务都可以添加到默认服务器中来。如下“小马服务器”是之前创建的 ECS 默认实例,我们可将其添加至默认后台服务器;


添加成功如下,我们可以为其设置端口和权重;

健康检查配置

第三步是健康检查配置,健康检查机制用于检查后台服务是否健康,当后端某台 ECS 健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的 ECS 上;而当该 ECS 恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中。

阿里云的健康检查机制分为两种,第一种是使用 TCP 协议检查,基于网络连接来进行检查服务是否正常;第二种是使用 HTTP 协议检查,面向应用层,会确定我们的请求是否可达或者能正常发起响应。

对于检查原理我们此处无需对其进行深入了解,阿里云健康检查是基于 LVS 和 Tengine 的,我们仅需选择“是否开启健康检查”即可。


至此,负载均衡业务的配置就完成了;



最后点击“提交”,配置成功。

测试

如下就是配置完成后的负载均衡实例;


回到云服务器 ECS 控制台,可以看到云服务器已关联负载均衡服务;


我们在浏览器访问负载均衡实例公网 IP,与我们部署的服务器公网 IP 效果一致。


Tips - 负载均衡使用注意事项:

  • 公网类型的负载均衡并不需要后台 ECS 配置公网;
  • 如果 ECS 有配置了公网 IP,需先修改路由,不能直接关闭;

有关【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法的更多相关文章

  1. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  2. ruby-on-rails - EC2 实例在负载均衡器中停止服务 - 2

    我有一个EC2实例正在运行。我有一个负载均衡器,它与EC2实例相关联。PingTarget:HTTP:3001/healthCheckTimeout:5secondsInterval:24secondsUnhealthythreshold:2Healthythreshold:10现在该实例显示为OutofService。我什至尝试更改监听端口等等。一切正常,直到重新启动我的EC2实例。任何帮助将不胜感激。仅供引用:我有一个在端口3001上运行的Rails应用程序,我有一个用于HTTP:80(loadbalancer)到HTTP:3001的监听器。我还在终端中通过ssh检查了正在运行的应

  3. 一文解决关于VLAN所有的疑惑 - 2

    一文解决关于VLAN所有的疑惑VLAN基本概念为什么需要VLAN?怎么在交换机上划分VLAN,VLAN的工作原理有了子网,已经隔离了广播,还需要VLAN干啥?只进行子网划分,不进行VLAN划分VLAN划分与子网划分附加VLAN信息的方法VLAN划分交换机的端口类型(Access和Trunk)一、访问链接二、汇聚链接汇聚链接VLAN间通信为什么要进行VLAN间通信?路由器实现VLAN间通信路由器和交换机的连接方式通信细节三层交换机实现VLAN间通信加速VLAN间通信三层交换机与路由器三层交换机路由器路由器和交换机配合构建LAN的实例使用VLAN设计局域网的特点VLAN增加网络的灵活性不使用VLA

  4. ruby-on-rails - 负载测试期间 Unicorn CPU 使用率激增,优化方法 - 2

    我对为我的RubyonRails3.1.3应用优化我的Unicorn设置的方法很感兴趣。我目前正在高CPU超大实例上生成14个工作进程,因为我的应用程序在负载测试期间似乎受CPU限制。在模拟负载测试中,每秒大约20个请求重放请求,我的实例上的所有8个内核都达到峰值,盒子负载飙升至7-8个。每个unicorn实例使用大约56-60%的CPU。我很好奇可以通过哪些方式对其进行优化?我希望能够每秒将更多请求汇集到这种大小的实例上。内存和所有其他I/O一样完全正常。在我的测试过程中,CPU越来越低。 最佳答案 如果您受CPU限制,您希望使用

  5. 【Unity游戏破解】外挂原理分析 - 2

    文章目录认识unity打包目录结构游戏逆向流程Unity游戏攻击面可被攻击原因mono的打包建议方案锁血飞天无限金币攻击力翻倍以上统称内存挂透视自瞄压枪瞬移内购破解Unity游戏防御开发时注意数据安全接入第三方反作弊系统外挂检测思路狠人自爆实战查看目录结构用il2cppdumper例子2-森林whoishe后记认识unity打包目录结构dll一般很大,因为里面是所有的游戏功能编译成的二进制码游戏逆向流程开发人员代码被编译打包到GameAssembly.dll中使用il2ppDumper工具,并借助游戏名_Data\il2cpp_data\Metadata\global-metadata.dat

  6. 你真正了解什么是接口测试么?接口实战一“篇”入魂 - 2

    最近在工作中,看到一些新手测试同学,对接口测试存在很多疑问,甚至包括一些从事软件测试3,5年的同学,在聊到接口时,也是一知半解;今天借着这个机会,对接口测试做个实战教学,顺便总结一下经验,分享给大家。计划拆分成4个模块跟大家做一个分享,(接口测试、接口基础知识、接口自动化、接口进阶)感兴趣的小伙伴记得关注,希望对你的日常工作和求职面试,带来一些帮助。注:文章较长有5000多字,希望小伙伴们认真看完,当然有些内容对小白同学不是太友好,如果你需要详细了解其中的一些概念或者名词,请在文章之后留言,后续我将针对大家的疑问,整理输出一些大家感兴趣的文章。随着开发模式的迭代更新,前后端分离已不是新的概念,

  7. 一文让你彻底掌握操作符(超详细教程) - 2

    ✅作者简介:大家好,我是小杨📃个人主页:「小杨」的csdn博客🔥系列专栏:小杨带你玩转C语言【初阶】🐳希望大家多多支持🥰一起进步呀!大家好呀!我是小杨。小杨花几天的时间将C语言中的操作符这部分知识做了一个大总结,在方便自己复习的同时也能够帮助到大家。通篇字数在一万字左右,可以算作是非常详细了,一文就可以带领大家彻底掌握操作符这部分内容,文章很长建议先收藏再看,防止下次想看就找不到啦。文章目录✍1,算术操作符✍2,移位操作符    🔍2.1,左移操作符    🔍2.2,右移操作符       ✨2.2.1,算术移位       ✨2.2.2,逻辑移位✍3,位操作符    🔍3.1,按位与&   

  8. Slowloris DoS攻击的原理与简单实现 - 2

    前言    Slowloris攻击是我在李华峰老师的书——《MetasploitWeb 渗透测试实战》里面看的,感觉既简单又使用,现在这种攻击是很容易被防护的啦。不过我也不敢真刀实战的去试,只是拿个靶机玩玩罢了。         废话还是写在结语里面吧。(划掉)结语可以不看(划掉)Slowloris攻击的原理        Slowloris是一种资源消耗类DoS攻击,它利用部分HTTP请求进行操作。也叫做慢速攻击,这里的慢速并不是说发动攻击慢,而是访问一条链接的速度慢。Slowloris攻击的功能是打开与目标Web服务器的连接,然后尽可能长时间的保持这些连接打开。如果由多台电脑同时发起Slo

  9. FIFO实战学习-同步FIFO/异步FIFO-格雷码 - 2

    目录FIFO一.自定义同步FIFO1.1代码设计1.2Testbech1.3行为仿真***学习位宽计算函数$clog2()***$clog2()系统函数使用,可以不关注***分布式资源或者BLOCKBRAM二.异步FIFO2.1在FIFO判满的时候有两种方式:2.2异步FIFO为什么要使用格雷码2.2.1介绍格雷码2.2.2格雷码在异步FIFO中的应用2.2.2格雷码判满2.4二进制与格雷码之间的转换2.4.1二进制码转换为格雷码的方法2.4.2格雷码转换为二进制码的方法2.3实现框图2.5实现及仿真代码2.6仿真图验证2.7结论FIFO  这篇更多的是记录FIFO学习,参考了众多优秀的文章,

  10. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

随机推荐