戳下方名片,关注并星标!
回复“1024”获取2TB学习资源!
前面介绍了服务发现与配置管理平台 Nacos、分布式的对象存储系统 MinIO 、容器管理工具 Rancher 、kubernetes 包管理工具 Helm 、服务网格 Istio 、链路追踪工具 SkyWalking、influxDB、cAdvisor、Grafana、云服务器 ECS 入门等相关的知识点,今天我将详细的为大家介绍 云服务器 ECS 进阶 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发分享朋友圈支持一波!!!
负载均衡就是将访问流量根据转发策略分发到后端的多台服务器中。负载均衡建立在现有网络结构之上,提供一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。简单理解就是将负载(工作任务)进行平衡并分摊到多个操作单元上进行执行。
原因一:实现承载高并发、提高处理性能
在实际的企业业务中,随着业务量、用户及服务量的不断累加,仅靠单台 ECS云服务器是无法满足其业务需要的,而对这些海量 高并发
的处理就需要使用到负载均衡,将这些海量的流量分发至后台的多台服务器进行处理。
高并发(High Concurrency):系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,诸如大量的用户访问等。
原因二:高可靠性,实现后端服务冗灾
所谓高可靠性,就是当只有一台服务器时,如果该服务器出现了任何故障,那么就会直接影响整个网站的无法服务。负载均衡技术的好处在于可以设置固定的健康检查模式,对后端服务进行定期检查,同时使用多台服务器对外提供访问服务,某一台服务器出现故障时则可以通过负载均衡 LSB 动态的将这台故障服务器移除,以至于不会影响整个网站的运行。更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。
首先进入阿里云服务器 ECS 控制台,选择“实例” --> “管理”,进入实例详情页;在实例详情的最下面有“关联的负载均衡”模块,我们点击进入负载均衡控制台;在控制台中,选择传统型负载均衡下的“实例管理”,可进行传统型负载均衡 CLB 的创建;针对可用区的选择:可用区指的是一套独立的基础设施,不同的可用区之间基础设施(网络,电力和空调等)相互独立,即一个可用区出现基础设施故障不影响另外一个可用区。
选择 多可用区
模式负载均衡服务可以更加可靠,当主可用区的机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(约 30s)切换到另外一个备可用区的机房并恢复服务的能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区的机房提供服务。
我们在选择可用区时需要先看自己需要设置负载均衡的实例是在哪个可用区,如下我的实例是位于华北 2,北京可用区 H;所以我在负载均衡的可用区中选择与实例相对应的,而备可用区默认即可;针对阿里云负载均衡服务的收费模式的选择:有 按规格计费
和 按使用量计费
两种。按规格计费模式每小时的规格费将按用户购买时所选规格固定收取,适用于满足部分用户对固定使用量有强诉求的业务场景;对于业务峰值变化较大的用户而言,按使用量计费可以更好的兼顾成本与业务可用性。如下是两种计费方式对比:针对实例类型的选择:公网
是对外部用户提供服务的,私网
则只对阿里云内部服务提供访问,我们根据自己需要进行选择。选择相关参数之后,点击“立即购买”;开通成功之后回到负载均衡控制台,可以看到已有传统型负载均衡实例,至此负载均衡 CLB 服务创建成功。更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。
在上面的文章中,介绍了负载均衡的概述及优势,并详细演示了阿里云服务器负载均衡服务的选型与购买配置。本期文章我们将对负载均衡的实现原理进行详细介绍,并对实例演示具体的配置操作,包括基础配置、健康检查配置、后端服务配置。
对于负载均衡的策略来说,用户是先访问我们的域名,进而访问到域名所解析到的负载均衡公网 IP,随后负载均衡再进行一层转发,转发至后端服务器。转发过程中的协议可由我们自己根据情况来定义。比如使用 Http 协议类型,用户想要在前端访问到负载均衡,我们就需要配置 Http 协议与 80 端口,负载均衡也是使用 Http 协议转发至后台服务器,那么后端启用的服务或者监听也需要使用 Http 协议来进行匹配。也就是说前端与后端的协议类型都是相对应的。
前端与后端服务之间通过 轮询策略
来连接。它决定着负载均衡通过什么样的策略对后端服务器进行流量分发,分为轮询、加权轮询、加权最小连接数三种模式。轮询
模式指前端通过海量流量来访问负载均衡,随后负载均衡将流量均匀的进行分发至服务器。比如将一堆苹果分给若干个孩子,从第一个孩子一人一个的往下发,发到最后一个孩子手里之后再返回来从第一个孩子开始一人一个的发。加权轮询
模式在轮询的基础上加入了“权重”,为每一个服务器赋予权重值,根据权重来进行流量的分配,权重值越高,流量也越多。加权最小连接数
模式在加权的基础之上又增添了最小连接数,在设置权重值的同时可根据该服务器的承受压力动态调整分配效果,如果某一服务器的流量较少,负载均衡则会考虑是否将一些流量分配过来。
在负载均衡的高级配置中,还有一个属性叫做 会话保持
。负载均衡按照轮询策略进行流量分发时,如果设置了会话保持,负载均衡将在固定的一段时间内将某一特定 IP 分发给某一个特定服务器。如下 IP1 分发给 服务器 1,IP2 分发给服务器 2,IP3 分发给服务器 3。针对会话保持功能,TCP 协议会话保持基于 IP,只按照客户端的 IP 来进行负载均衡策略,用户从特定的 IP 访问也将访问到固定的服务。Http 协议会话保持基于 Cookie,每一个用户都有一个自己的 Cookie 信息,不同的用户进行访问时将根据他的 Cookie 信息来决定访问到哪一个服务,即使它们是通过同一个 IP 访问进来的。
回到负载均衡控制台,已经购买成功的负载均衡服务如下,在控制台中以实例的方式展示;点击“点我开始配置”选项,即可进入配置向导,在这里我们基于 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,需先修改路由,不能直接关闭;
弹性伸缩(Auto Scaling)就是自动为我们调整弹性计算资源大小,以满足业务需求的变化,是一种根据业务需求和策略自动调整计算能力的服务。简单可以理解为它会根据服务器使用情况,自动的增减服务器的实例数量。
在阿里云服务器 ECS 中弹性伸缩是这样实现的。比如在一个负载均衡中挂载了三台 ECS 服务,当因为用户访问量大等状况导致云服务资源不够用的时候,云监控会自动感知(可通过 CPU 的使用率等指标判断),并触发事件来通知弹性伸缩服务根据配置规则来自动添加资源,反之也是如此。通过这样的原理以实现资源的自动化扩容与收缩。自动化的资源调配
就是弹性伸缩的最大优势。此外,弹性伸缩还可以实现资源的自动故障替换。当云监控发现其中一台 ECS服务器发生故障或者不可用时,就会从资源池中拿一台 ECS 过来进行替换。
在应用弹性伸缩服务的时候,我们应避免以下几点错误认知:
弹性扩容一定能解决我们整体的性能瓶颈;需找到问题根本所在进而针对性解决才行。
弹性伸缩免费;弹性伸缩服务是免费的,但通过弹性伸缩自动创建或者手工加入的 ECS 实例需按照相关实例类型进行付费。
弹性伸缩服务的实现模式有以下几种:
GRE(Generic Routing Encapsulation,通用路由封装)协议,是指把两个不同的 VPC 网络通过建立一条虚拟隧道的方式连接到一起。
假设在两个不同的地域各有一个 VPC 网络,每个 VPC 中均包含三个 ECS 实例(主机),其中一个实例具有公网 IP。当我们想要让这两个 VPC 网络中的某 ECS 实例可以互相访问,就需要设置 GRE 通道,将具有公网 IP 的主机作为跳板建立隧道来实现连接。可以看到,想要通过 GRE 来实现互联的 VPC 网络中必须有一台主机是具备公网 IP 的。更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。
回到阿里云服务器控制台,点击左侧菜单栏的“弹性伸缩”进入弹性伸缩控制台;弹性伸缩的快速配置分为三部,“创建伸缩组” --> “创建伸缩规则” --> “完成并启用”;伸缩组的创建不必多说,当我们选择实例来源是已有实例时,该实例本身不会自动加入到伸缩组内,伸缩组仅提取该实例使用的基础镜像,不会包含该实例的数据信息;在高级配置中,可为该伸缩组添加扩缩容策略、关联负载均衡和数据库等;伸缩规则即在该伸缩组中定义哪些操作被允许。在“执行的操作”选项中,有 调整至
、增加
、减少
三个选择。增加就是扩容 ECS 后台服务;减少就是移除;调整至即指定调整到多少台;冷却时间指的是该规则被使用之后多长时间内不能再次被使用;
选择相关属性后点击“完成”,伸缩组就创建成功了。我们上一步选择的是“稍后手动执行”,所以它处于停用状态,需手动开启;新创建的伸缩组由于还未进行任何配置,所以各项指标均为 0;接下来进行弹性伸缩的相关配置。
选择“实例配置来源”下的“创建伸缩配置”,进入弹性伸缩管理控制台;在基础配置模块中主要是选择付费模式与实例的规格,镜像选择等,大家根据个人需要自行选择;伸缩配置完成之后就可以选择该规格来自动完成扩缩容操作了,前提需要我们自己来创建伸缩规则。
点击已有的伸缩组名称;选择“伸缩规则与伸缩活动”,此时是没有伸缩规则的,点击“创建伸缩规则”;如下:更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。
参考来源:https://majinjian.blog.csdn.net/article
/details/128413722 https://majinjian.blog.csdn.net
/article/details/128355888
— 特色专栏 —
MySQL|PostgreSQL|Redis|MongoDB|Tools
ElasticSearch|Kubernetes|Docker|Hadoop
Kafka|RabbitMQ|Zookeeper|OpenStack
公众号读者专属技术群
构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位,已在技术交流群的请勿重复添加)。主要以技术交流、内推、行业探讨为主,请文明发言。广告人士勿入,切勿轻信私聊,防止被骗。
扫码加我好友,拉你进群
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!
文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文
文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作 导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释: cwy_init/init_123..._达梦数据库导入导出
文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js
文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6
文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输
文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...
文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure
文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割
文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答
文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。
文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入
文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf