系统流量大关于系统负载均衡的做法

系统流量大了,访问卡顿,升级CPU,内存,RDS,优化程序架构的同时,也要考虑到如何通过多台服务器负载来分解访问流量的压力,这个通过硬件均衡分解压力的方式也就是负载均衡了,下面我们基于阿里云的服务来做负载均衡。我们的客户伙伴的系统也会遇到这种流量暴增,在提升扩容CPU内存RDS的同时,就要考虑通过负载均衡来处理系统访问卡顿了,我以为阿里云的产品来建立解决方案分享给大家

什么叫负载均衡呢?

负载均衡是一项基本的网络服务,主要是为了解决系统运行的并发压力,增强网络处理能力,减轻单个设备的资源压力,提高整体服务性能。客户端的流量将首先到我们预设的达负载均衡服务器,你可以理解为流量入口有个调度员,他来合理分配这个流量该去哪里。负载均衡服务器(调度员)通过某种调度算法将流量分配到不同的应用程序服务器。同时,负载均衡服务器还将在应用程序服务器上执行定期运行状况检查。当发现故障节点时,它将动态从应用程序服务器群集中删除节点,以确保应用程序的高可用性。

阿里云的负载均衡产品叫CLB,我们就以CLB简写来做讲解,一共有以下几个配置步骤

一、规划实例地域
在选择地域时,请注意:

为了减少延迟并提高下载速度,建议选择离您最近的地域,并且确保选择的地域与ECS实例在同一个地域。
为了提供更加稳定可靠的服务,CLB已在大部分地域提供主备可用区,实现同地域下的跨机房容灾。建议您选择提供主备可用区的地域。
CLB默认不支持跨地域部署,因此应选择与后端ECS实例相同的地域。
选择实例的网络类型
CLB提供面向公网和私网的负载均衡服务:

如果您需要使用负载均衡分发来自公网的请求,请选择创建公网CLB实例。
公网CLB实例提供一个公网IP,用来接收来自互联网的请求。

对于公网CLB实例,您还需要选择实例的计费方式:
按流量计费:适用于波峰波谷效应明显的业务。
按带宽计费:适用于带宽较为平稳的业务。
如果您需要使用负载均衡分发来自私网的请求,请选择创建私网CLB实例。
私网CLB实例仅提供阿里云私网IP,只能通过阿里云内部网络访问该负载均衡服务,无法从互联网访问。

二、选择实例规格
CLB提供多种实例规格供您选择:

对于按量计费实例,建议您直接选择可以买到的最大规格,这样可以保证业务的灵活性(弹性),且不会让您额外多付出成本。但如果您的业务量达不到超强型I(slb.s3.large),建议您设置合理的弹性上限,例如选择高阶型II(slb.s3.medium)。
对于包年包月实例,您需要评估您的实际业务量,然后选择一个较合适的规格。评估业务量,主要参考以下几个原则:
如果是四层监听,关注的重点是长连接的并发连接数,那么最大(并发)连接数应当作为一个关键指标来参考。根据不同的业务场景,您需要预估负载均衡需要承载的最大并发连接数,并选择相应的规格。
如果是七层监听,关注的重点是QPS的性能,QPS决定了一个七层应用系统的吞吐量。对QPS进行预估,初步选定一个规格后,在业务压测和实测过程中对规格进行微调。
结合实际业务流量的走势、峰值情况,对性能规格进行更加精确的选取。


三、选择协议类型
CLB提供基于四层(TCP协议和UDP协议)和七层(HTTP协议和HTTPS协议)的负载均衡:

四层监听将请求直接转发给后端服务器,不会修改报头。客户端请求到达CLB后,CLB根据监听中配置的后端端口与后端服务器建立TCP连接。
七层监听原理上是反向代理的一种实现。客户端请求到达CLB后,CLB与后端服务器建立TCP连接,即再次通过新TCP连接HTTP协议访问后端服务器,而不是直接转发报文到后端服务器。
七层监听比四层监听在底层实现上多了一个Tengine处理环节。此外,客户端端口不足、后端服务器连接过多等场景可能导致七层服务性能不高,如果您对性能有很高的要求,建议您选择四层监听。

四、准备后端服务器
在使用负载均衡服务前,您需要创建ECS实例并部署相关应用,然后将ECS实例添加到负载均衡实例中来处理转发的客户端请求。

创建ECS时,请注意:
ECS实例的地域和可用区
确保ECS实例的地域和CLB实例的地域相同,并且ECS实例与CLB实例属于同一个VPC。此外,建议您将ECS部署在不同的可用区内,提高可用性。创建ECS实例,请参见使用向导创建实例。

本教程中,在华东1地域创建了两个ECS实例,为了便于辨识,将实例分别命名为ECS01和ECS02,如下图所示

五、应用配置
本教程中,分别在ECS01和ECS02两个实例上使用Apache搭建了两个静态网页,如下图所示。
在浏览器中输入ECS01实例绑定的弹性公网IP地址:

 

 在浏览器中输入ECS02实例绑定的弹性公网IP地址:

 

在ECS上部署好应用后,不需要再进行特别的配置。但如果您要配置一个四层监听(TCP协议或UDP协议),并且ECS使用的是Linux系统,确保ECS实例上/etc/sysctl.conf目录下net.ipv4.conf文件中的以下三个参数的值为零:

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0

六、创建实例

本文介绍如何创建一个传统型负载均衡CLB公网实例。实例创建后,系统会自动分配一个服务地址,您可以将您的域名解析到该实例的服务地址。

背景信息
一个CLB实例可以添加多个监听和后端服务器。
操作步骤
登录传统型负载均衡CLB控制台。
在实例管理页面,单击创建传统型负载均衡。
在实例购买页面,根据需要配置CLB实例。
本教程中的CLB实例配置如下:
付费模式:选择一种付费模式。本示例中选择按量付费。
地域和可用区:由于CLB默认不支持跨地域部署,因此创建CLB实例时应选择与ECS实例相同的地域。本教程选择华北1(青岛)。
可用区类型:CLB在大部分地域都开通了多可用区功能,实现同城容灾。当主可用区的机房故障、不可用时,CLB在非常短的时间内(大约30秒)切换到另外一个备可用区的机房恢复服务能力。当主可用区恢复时,CLB同样会自动切换到主可用区的机房提供服务。
本教程中的主可用区为华北1 可用区C,备可用区为华北1 可用区B。

实例名称:输入实例名称,或者使用系统自动创建的实例名称。
实例规格:选择简约型(slb.s1.small)。该规格最大可以支持连接数为5000,新建连接数(CPS)为3000,每秒查询数 (QPS)为1000。
实例类型:选择公网。
IP版本:选择IPv4。
计费方式:选择按使用流量计费。
数量:选择1。
资源组:选择默认资源组。
单击立即购买。
在确认订单页面,选中我已阅读并同意《负载均衡SLB(按量付费)服务协议》,然后单击去支付。
您可以将域名解析到CLB实例的公网服务地址上提供服务。

七、配置实例

操作步骤

登录传统型负载均衡CLB控制台。
在实例管理页面,找到目标实例,然后在操作列单击监听配置向导。
在协议&监听配置向导,配置以下监听信息,然后单击下一步。

在后端服务器配置向导,选择后端服务器类型。
本教程选择默认服务器组,然后单击继续添加。
在我的服务器面板,选中已创建的ECS01和ECS02实例,单击下一步。
配置权重,然后单击添加。
权重越大转发的请求越多,本教程保持默认值。
在默认服务器组页签下,配置后端协议端口,然后单击下一步。
ECS实例上开放的用来接收请求的后端端口,在同一个负载均衡实例内可重复。本教程端口设置为80。
在健康检查配置向导,配置健康检查,然后单击下一步。本教程保持默认值。
开启健康检查功能后,当后端某个ECS健康检查出现问题时,负载均衡服务会将请求转发到其它健康检查正常的ECS上,而当该ECS恢复正常运行时,负载均衡会自动恢复它的请求转发。
在配置审核配置向导页签,检查配置信息,然后单击提交。
单击知道了,返回实例管理页面,单击刷新。
当后端ECS的健康检查状态为正常时,表示后端ECS可以正常处理负载均衡转发的请求。

 

在浏览器中多次输入负载均衡实例的服务地址,测试负载均衡服务。

 

八、设置A记录域名解析

域名解析是域名和IP地址相互映射的分布式数据库。阿里云负载均衡支持将域名解析到负载均衡实例的公网服务地址上,使用户更加方便地访问互联网。

背景信息
例如,您网站的域名为www.aliyun.com,运行在公网IP地址为192.0.XX.XX的ECS实例上。创建负载均衡实例后,系统分配的负载均衡实例的公网IP地址为198.51.XX.XX。您需要将ECS实例添加到负载均衡实例的后端服务器池,并将域名www.aliyun.com解析到198.51.XX.XX。建议您使用“A记录解析”(即将域名解析到一个IP地址)即可。
操作步骤
登录域名解析控制台。
在域名解析页面,单击添加域名。
在添加域名对话框输入您的主机域名,然后单击确定。
在域名解析页面,找到目标域名,然后在目标域名的操作列单击解析设置。
在解析设置页面,单击添加记录。
在添加记录面板配置以下信息完成A记录解析配置,然后单击确认。

 

原文地址:https://www.cnblogs.com/keleyu/p/15703582.html