个人亲历运维面试 - 负载均衡部分

负载均衡类

LVS有哪几种工作模式:

原文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639

  • NAT模式

    NAT即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,以及外部用用户可以访问位于公司内部的私有IP主机。NAT工作模式拓扑结构如图2所示,LVS负载调度器可以使用两块网卡配置不同的IP地址,eth0设置为私钥IP与内部网络通过交换设备相互连接,eth1设备为外网IP与外部网络联通。

  访问流程:

  第一步,用户通过互联网DNS服务器解析到公司负载均衡设备上面的外网地址,相对于真实服务器而言,LVS外网IP又称VIP(Virtual IP Address),用户通过访问VIP,即可连接后端的真实服务器(Real Server),而这一切对用户而言都是透明的,用户以为自己访问的就是真实服务器,但他并不知道自己访问的VIP仅仅是一个调度器,也不清楚后端的真实服务器到底在哪里、有多少真实服务器。
    第二步,用户将请求发送至124.126.147.168,此时LVS将根据预设的算法选择后端的一台真实服务器(192.168.0.1~192.168.0.3),将数据请求包转发给真实服务器,并且在转发之前LVS会修改数据包中的目标地址以及目标端口,目标地址与目标端口将被修改为选出的真实服务器IP地址以及相应的端口。

    第三步,真实的服务器将响应数据包返回给LVS调度器,调度器在得到响应的数据包后会将源地址和源端口修改为VIP及调度器相应的端口,修改完成后,由调度器将响应数据包发送回终端用户,另外,由于LVS调度器有一个连接Hash表,该表中会记录连接请求及转发信息,当同一个连接的下一个数据包发送给调度器时,从该Hash表中可以直接找到之前的连接记录,并根据记录信息选出相同的真实服务器及端口信息。

  •  TUN模式(隧道模式)

       LVS(TUN)的思路就是将请求与响应数据分离,让调度器仅处理数据请求,而让真实服务器响应数据包直接返回给客户端。IP隧道(IP tunning)是一种数据包封装技术,它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据。

  • DR模式(直接路由模式)

  DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境DR模式是互联网使用比较多的一种模式。

LVS负载均衡调度算法

  1. 轮询调度:调度器会将所有的请求平均分配给每个真实服务器
  2. 加权轮巡:权值越高的服务器,处理的请求越多。
  3. 最少队列调度:无需队列,如果有realserver的连接数等于0就直接分配过去
  4. 最小连接调度:当一个请求被调度到某台服务器,其连接数加1;当连接中断或者超时,其连接数减1

Nginx的优势

  1. 轻量级,会占用更少的内存及资源
  2. 抗并发,epoll
  3. nginx处理静态文件比apache高三倍以上
  4. nignx的设计高度模块化,编写模块相对简单
  5. nginx可以作为7层负载均衡,和反向代理
  6. nginx配置简洁,支持正则,可以-t检测文件,apache配置复杂,没有检测功能
  7. 不间断服务进行升级,社区活跃

Haproxy的特点

  1. 工作在4,7层,支持虚拟主机
  2. Session的保持,Cookie的引导,通过url进行健康检查
  3. 负载均衡速度和并发处理优于nginx

猜你喜欢

转载自www.cnblogs.com/Wshile/p/12505466.html