摘要: 负载均衡是一种技术,从字面意义上理解,就是让负载(变得)均衡,负载是什么呢?可以理解为工作量、工作强度。用日常生活中的例子来打比方,一群建筑工人,盖一幢楼房,有搬砖的,有和水泥的,有砌墙的,有刷油漆的,同时每个工人的劳动能力还各有差别,如果让这些工作自组织的干起活来,可能有的人忙到累死,而有的人闲的无聊 ,因此不论大小工地上,都会存在监工、项目经理、包工头等这样的角色,他们会统观全局,识别每个工人的工作强度,合理分配任务,保证建筑活动的正常开展,很大程度上起到了的负载均衡的作用, 这就是负载均衡在生活中的例子。
负载均衡是一种技术,从字面意义上理解,就是让负载(变得)均衡,负载是什么呢?可以理解为工作量、工作强度。用日常生活中的例子来打比方,一群建筑工人,盖一幢楼房,有搬砖的,有和水泥的,有砌墙的,有刷油漆的,同时每个工人的劳动能力还各有差别,如果让这些工作自组织的干起活来,可能有的人忙到累死,而有的人闲的无聊 ,因此不论大小工地上,都会存在监工、项目经理、包工头等这样的角色,他们会统观全局,识别每个工人的工作强度,合理分配任务,保证建筑活动的正常开展,很大程度上起到了的负载均衡的作用, 这就是负载均衡在生活中的例子。
接下来我们来看看云计算中所说的负载均衡是什么。
阿里云负载均(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
可见云计算中的负载均衡除了通过流量分发让后端的服务器负载均衡,还有两个重要的用途,一就是消除单点故障,因为一般负载均衡后端挂载有多台ecs服务器,当某一台不工作时,系统的可用性不会受到影响;二是可以扩展应用系统的处理能力。
拿刚刚过去的双十一举例,大家都知道,2017年双11又创造了新纪录,全天交易额1682亿,交易峰值32.5万笔/秒,支付峰值25.6W笔/秒,如此海量的访问请求,是再强大的服务器也无法支撑的,因此需要n多台服务器一起来提供服务,而这些服务器的调度都需要依赖负载均衡SLB,负载均衡SLB接收到用户的请求,智能调度到后端的服务器进行处理,并将处理后的结果返回给用户,完成了单台服务器不可能完成的任务。
概念我们先说这么多,下面我们实际来看看如何最快速的搭建一个具有负载均衡功能的简单网站。
需要用到的云产品:云服务器ECS x 2、负载均衡SLB x 1
首先我们购买两台云服务器,这里我们选择华北2(北京)区域,购买两台按量付费的云服务器,云服务器的处理能力不重要,选择最低配够演示需求即可,购买参数如下:
下单购买成功后,在云服务器ECS的控制台中就可以看到购买好的服务器了
我们首先登录两台ECS进行简单配置,配置的主要目的就是给云服务器安装WebServer使其变成一台WEB服务器,步骤如下:
1、通过ssh登录到ecs云服务器,注意这里需要使用云服务器的公网ip:
在控制台中输入命令行:ssh root@xxx.xxx.xxx.xxx,回车后并输入在购买时设置的SSH远程管理密码即可登录。
第一次登录时会有个提示,选择yes即可
![image](https://yqfile.alicdn.com/31ac4daf2b55dbab3769fe657f87ba15f5a87f7d.png)
2、安装webserver,这里我使用的是Ubuntu Server的发行版,因此我们可以很方便的使用apt-get工具来完成webserver的安装,在控制台输入如下命令(注意,接下来的操作要确定是在ECS的shell中完成,而不是您本地的shell中):
a)、首先使用apt-get update命令更新一下软件源
apt-get update
b)、使用apt-get install apache2安装apache2服务器
apt-get install apache2
c)、使用如下命令简单的配置一下index.html主页
cd /var/www/html
echo "Hello World ! This is ECS01." > index.html
同理我们对两台云服务器都做上述同样的配置操作,只是在最后一步配置index.html主页时,我们配置一个不同的主页面,便于演示:
cd /var/www/html
echo "Hello World ! This is ECS02." > index.html
至此,云服务器ECS就准备好了,下面我们来购买一台负载均衡,同样我们要在华北2(北京)区域购买,负载均衡和后端服务器ECS必须保持在同一可用区。
购买参数如下设置
下单购买成功后,可以在负载均衡的控制台看到实例信息:
接下来,我们对SLB进行配置,配置有如下两个步骤:
1、创建监听:这个目的是未了让SLB在某个指定端口上监听客户请求,并且配置健康检查等相关参数设置
点击实例名称,进入到内层菜单,点击添加监听
在弹出对话框中前端协议选择HTTP,端口80,后端协议端口填80
然后不断点下一步,直至监听创建完成
创建好监听后,我们点击后端服务器菜单项,切换未添加的服务器tab页,勾选列表中的2台云服务器(就是之前在华北2区域购买的2台云服务器),然后点批量添加
在弹出对话框中,保持权重均为100,点击确认,这样就把后端服务器添加到SLB的后端了
至此,对负载均衡SLB的配置就完成了,我们来检验一下效果:
1、不经过负载均衡,直接访问ECS1服务器,在流量器输入地址http://47.95.157.85 可以发现当前是访问不到的,因为之前我们购买ECS时没有勾选开放80端口,因此通过公网进来的80端口请求ECS不会响应
2、不经过负载均衡,直接访问ECS2服务器,同样,由于上述原因,http://60.205.105.168 也无法正常访问
3、通过负载均衡访问,在流量器中输入负载均衡的公网IP地址http://47.95.171.116
第一次访问:
下二次访问:
不断刷新网页,可以看到一会页面返回的是“Hello World ! This is ECS01.”,一会返回的是“Hello World ! This is ECS02.”,这就说明负载均衡已经在正常工作了,来自用户的请求,被轮询的发往另外不同的ECS进行处理,并且返回了不同的结果。
至此,我们已经完成搭建了一套小型的具有负载均衡功能的网站系统,其实一点也不复杂,对吧。