负载均衡
负载均衡简单来说就是为了解决大型网站高并发问题的 ! 实现方式原理也比较简单 , 一个服务器不行我就两个 , 两个不行我就三个 , 只要用户访问受限我就增加服务器解决 , 没办法有钱任性 ~
基本流程差不多这个样子 那个 OSS请大家无视 , 是我之前搞别的网站的时候弄的东东 ~
image.png管他什么 DNS 负载均衡 IP 负载均衡 链路层负载均衡 , 大致原理都是这个样子 , 只是前面的分发方式稍有区别
什么负载均衡的算法 轮询、随机..... 我们这里就都不研究了~ 有兴趣的可以自己研究一下,网上还是有很多文章的~
我们这里只是以实践为主 阿里现在有个免费的沙箱教程 , 我这里也是有很多参考了他的教程
实现负载的第一步就是你要先有两个 ECS 服务器 , 这个是硬性条件没办法改变 , 不过好在现在阿里搞优惠~ 新用户六个月免费试用一个ECS , 注意是新用户一分钱美化过的那种 , 我之前的账号就买过一个域名花了大概30块钱 , 就不让用了~ 迫不得已我又申请了个新账号 , 不巧的是着我才有一个服务器 , 如果只是想体验一下的话我建议搞一个按流量计费的服务器 ! 这样的话就解决问题了 , 当然如果想要长时间使用的话还是需要在开一台新的~
好吧我们现在有了两台服务器了 , 这两台服务器现在每个服务器都有一个自己的 公网 IP
服务器 A 服务器 B现在通过不同的 IP 访问可以看到不用的服务器里面的内容 , 他们的内容是一样的但是 IP 不同 , 暂时我们通过这个 IP 区分这个两个服务器
现在我们点击负载均衡 , 我这里已经创建负载均衡实例了 , 没有的朋友你就要破费了~
image.png完成后点击管理实例
image.png通过如下步骤,添加负载均衡的 监听 。
1)点击左侧栏中的 监听 ,进入监听管理页面。
2)点击右侧 添加监听 ,添加新的监听。
在 基本配置 页面,输入如下信息,完成后,点击 下一步 。
前端协议[端口] :设为 HTTP 80 ;
后端协议[端口] :设为 HTTP 80 。
image.png开启 健康检查 ,并点击 确认
image.png提示 配置成功 ,点击 确认 。
image.png此时,页面将显示一个 状态 为 运行中 的监听,且 健康检查 的状态为 已开始 。
image.png通过如下步骤,将 云服务器ECS-1 和 云服务器ECS-2 两台ECS实例,添加到负载均衡后端。
1)点击左侧栏 后端服务器 ,进入负载均衡后端服务器管理页面。
2)选择 未添加服务器 。
3)勾选 筛选的两台ECS实例,并点击 批量添加 。
4)弹出后端服务器的权重分配对话框,点击 确定 。
说明:负载均衡器将会按照输入的权重比例分发请求。
5) 在 已添加的服务器 页面中,等待1分钟左右,点击右侧的 刷新 ,查看到两台ECS服务器的 健康检查状态 变为 正常 。
image.png好了到这里基本配置就算是成了 , 下面我们就要验证一下是否配置成功
验证
- 此时,两台后端服务器的权重比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例:
1)点击左侧 详情 ,在右侧页面中的红框处看到负载均衡的 服务地址(也就是 实验资源 提供的 负载均衡 的 IP地址) ;
2)在浏览器中新建页面,并访问 负载均衡 的 服务地址 。界面显示的 后端服务器IP 为 云服务器ECS1 或 ECS2 的 内网地址 。
说明:界面显示的地址为内网地址,这是因为负载均衡访问后端ECS实例,是通过内网访问的。
3)刷新 浏览页面,显示的 后端服务器IP 将发生变化,变为 云服务器ECS-2(或 云服务器ECS-1)的 内网地址 ;
image.png4)重复刷新操作,观察 后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。
5)如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
- 通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。
1)返回 后端服务器 页面 ;
2)选中 已添加的服务器 ,列表中,勾选下方的勾选框 ,然后点击 修改权重 ;
image.png3)弹出对话框中,勾选 设置不同的权重 。
4)设置两个实例的 权重 分别为 30 ,90 。
说明:通过如上的权重配置,用户通过负载均衡访问的时候,1/4的用户请求发送到一台后端服务器中,3/4的请求发送到另一台后端服务器中。
5)完成如上配置后,点击 确定 ,生效配置信息。
6)返回 已添加的服务器 的页面,查看到两台ECS实例的权重分别为 30 和 90 ,并记录对应的ECS实例 内网地址。
image.png7)浏览器中,刷新多次 负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每4次刷新,将有3次访问 权重 为 90 的ECS实例,1次访问权重为 30 的ECS实例。
8)如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
3.执行以下步骤,开启负载均衡的 会话保持 功能。
1)点击左侧 监听 ,监听页面点击右侧的 配置 。
2)弹框的 基本配置 页面,点击 展开高级配置 ;
image.png3)开启 会话保持 ,超时时间 输入 180 (即 3 分钟);完成后点击 下一步 。
image.png4)下面的 健康检查配置 和 配置成功 页面都点击 确定 。
image.png5)返回到 监听 页面 ,会话保持 状态 已开启 。
image.png4.再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台ECS上(究竟是哪一台ECS没有规定),时间超出后,重新按照权重比例分发。
负载均衡基本就算是结束 , 我们已经能够实现负载了 , 但是关于负载最主要的问题却不是这些 , 通过上面的案例我们可以看出负载均衡最关键是要保持两台服务器的数据一致~ , 如何同步两台服务器才是我们后面应该关注的重点~
还记的这篇文章的第一张图吗? 那个我自己画的流程图 , 里面有一个 OSS 存储 , 这个OSS 我是把它当做算是一台静态资源服务器 , 想一些静态页面 或者 图片之类的我会把它存储到 OSS 里面 , 这样的话我的这两台服务器里面的数据库 存储的内容的路径就可以保持一致了 , 而我需要做的就是把这两个服务器的数据库实现主从配置,从而实现了数据库的同步 , 这样的话就实现了同步 !
这里的负载教程多数摘自阿里的教程 , 我的另一台 ECS 服务器被释放了 , 没办法截图 ! 有兴趣的朋友可以通过 点我 跳转免费的学习教程
网友评论