workbench提示工作负载高度不平衡_Linux平台下的双机热备份和负载平衡综合案例实操演示...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:04   4063   0

功能描述

751ca2bd9f2e0ec00d6ac99fcd56fa93.png

图1 传统客户端访问服务器

在图1中,传统的客户端访问服务器模式已经不适应大批量并发用户,当并发请求超过一定数量后,会导致服务器瘫痪。为了缓解这一矛盾,我们提出了两种解决方法:

  1. 增强服务器本身性能,如cpu、内存、硬盘等硬件设施的提升,但该方法有瓶颈,且高性能的硬件设备花费巨大,不适合普及推广。
  2. 增加服务器数量,利用“群集”功能,实现多台服务器共同提供服务,缓解单个服务器的工作负担,该方法经济实惠,但需要进行相关的设置才能实施。

综上原因,我们优先推荐使用第二种方法,本讲将通过CentOS服务器搭建负载平衡服务,实现服务器的“群集”功能。

实验一、单点负载平衡

实验环境

  • web1:Windows 2012 Server DataCenter(www1.pip.cc)
  • web2:Windows 2012 Server DataCenter(www2.pip.cc)
  • Haproxy:CentOS7 (hk1.pip.cc)
  • client:Windows XP Professional

模拟效果描述:为了能看清楚负载平衡的过程,实验环境下,web1和web2上的网页内容不一样。

24425309105b31b0c5593ce47ebddbb0.png

图2 单点负载平衡

1、web1和web2用IIS搭建标准的web网站即可(配置过程略)。

2、CentOS7上配置haproxy,实现单点负载平衡。

2d97bf5380cc8a7841f43e1e457f3383.png

图3 安装haproxy

a0d861f5154d8faee51c44dfdc8425ee.png

图4 haproxy主配置文件

0a822e8b2e680e79d41ebd3384cc88f9.png

图5 haproxy主配置文件配置样本

图5中,配置了两个部分,前端frontend部分用于监听客户端请求,开启了80端口,采用http模式,并指定默认后端。都断backend部分定义了负载平衡模式,http模式传输,以及后端服务器www1和www2的访问地址,注意这里如果有DNS,可以配置为域名,如果没有,则用IP地址替代。

4dda843cf3f2598edb9de1f6bc0a3822.png

图6 重启haproxy服务

图6中,完成haproxy设置后,重启该服务,使配置生效。

3、客户端验证

fe63aa20f13fc0c3bda4a77492a3a868.png

图7 访问hk1.pip.cc负载平衡点

图7中,访问hk1.pip.cc负载平衡点,开启两个页面随机访问,可以看到两个网站的信息,说明两个网站轮流为客户端提供服务,负载功能实现(现实中,两个网站内容要求一致)。

实验环境二、多点负载平衡(双机热备份)

9b7cb63e741abd914c5c65c3cedbc3e2.png

图8 多点负载平衡

实验环境

  • web1:Windows 2012 Server DataCenter(www1.pip.cc)
  • web2:Windows 2012 Server DataCenter(www2.pip.cc)
  • Haproxy1:CentOS7 (hk1.pip.cc)
  • Haproxy2:CentOS7(hk2.pip.cc)
  • client:Windows XP Professional
a7a30cf59a17e639553e7ead6cb3289f.png

图9 安装keepalived

5cc85f73e4ac624346755b6a7dd32081.png

图10 keepalived的配置文件

446e7ba18806a16977ce12e2340e7499.png

图11 keepalived.conf的配置文件样本(主节点)

8aefd4b0e6fa9d2051b5deadee72bcb5.png

图12 keepalived.conf的配置文件样本(备用节点)

比较图11和图12,两个节点共同的浮动地址172.20.30.69,主节点的优先级(100)比备用节点的优先级(90)略高。

ec56da8ff2845eb023f6a265ae9f85f3.png

图13 重启keepalived服务,使配置生效

图13 在两个节点上都要执行该命令,使配置生效。

ef3027c1a8422c6cc2f1385b70872ce7.png

图14 查看主节点,浮动地址在该节点上

76990d0ff4800912c44ff42c8da54a4f.png

图15 查看备用节点,浮动地址不在该节点上

图14和图15是两个节点的对比图,浮动节点只在主节点上有效,当主机点宕机时,浮动地址会出现在备用节点上,“浮动”一词很形象的描绘了两个节点的工作状态。

0a02499ecd6b9e37deec3337dabf4263.png

图16 访问浮动地址

图16中,用户访问浮动地址,从而访问到了web1和web2中任意一台服务器,这里我的浮动地址添加了域名,客户端通过www.pip.cc访问,如果没有DNS,则直接通过IP地址访问即可。

最后附上本案例的DNS信息:

  • www1.pip.cc:172.20.30.15网站一
  • www2.pip.cc:172.20.30.16网站二
  • www.pip.cc:172.20.30.69 浮动地址
  • hk1.pip.cc:172.20.30.25 节点一
  • hk2.pip.cc:172.20.30.26 节点二
  • dns.pip.cc:172.20.30.5 DNS服务器

总结

haproxy+keepalived是Linux环境下的负载均衡和双机热备份功能,该功能填补了Linux服务器操作系统在冗余备份领域的空白,有点类似于windows服务器中“群集”的概念,本讲介绍的知识仅仅是负载平衡和双机热备份功能的基本实现,更深层次功能还需要进一步学习完善。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP