负载均衡策略

一、概述

        负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展网络设备和服务器的带宽,并可以在一定程度上增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性等。用官网的话说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前处理所有服务器端和客户端之间的请求,从而最大程度地提高响应速率和容量利用率,同时确保任何服务器都没有超负荷工作。如果单个服务器出现故障,负载均衡的方法会将流量重定向到其余的集群服务器,以保证服务的稳定性。当新的服务器添加到服务器组后,也可通过负载均衡的方法使其开始自动处理客户端发来的请求。

使用负载均衡可以给我们带来的几个好处:

  • 提高了系统的整体性能;
  • 提高了系统的扩展性;
  • 提高了系统的可用性;

二、分类

        广义上的负载均衡器大概可以分为 3 类,包括:DNS 方式实现负载均衡、硬件负载均衡、软件负载均衡。

(一)DNS 实现负载均衡

        DNS 实现负载均衡是最基础简单的方式。一个域名通过 DNS 解析到多个 IP,每个 IP 对应不同的服务器实例,这样就完成了流量的调度,虽然没有使用常规的负载均衡器,但实现了简单的负载均衡功能。DNS 轮询是将多台服务器映射到同一个主机名上,当用户访问 foo.example.com 时多台服务器都可用于处理它们的请求,使用的就是这种方式。

优点:实现简单,成本低,无需自己开发或维护负载均衡的设备

缺点:

  • 服务器延迟大,服务器升级不方便。DNS 与用户之间是层层缓存,发生故障时通过DNS 修改或者摘除故障服务器,中间会经过层层缓存
  • 流量调度不均衡,粒度太粗。
  • 流量分配策略太简单,支持的算法太少。DNS 一般只支持 rr 的轮询方式,流量分配策略比较简单,不支持权重、Hash 等调度算法。
  • DNS 支持的 IP 列表有限制。我们知道 DNS 使用 UDP 报文进行信息传递,每个 UDP 报文大小受链路的 MTU 限制,所以报文中存储的 IP 地址数量也是非常有限的,阿里 DNS 系统针对同一个域名支持配置 10 个不同的 IP 地址

  子域委派结合轮询

有多个子域或者地理位置比较分散的服务器时,就应该去使用它。它的响应时间更快,并且宕机的服务器不会去响应,因此客户端不会因为等待回复而被挂住。

(二)硬件负载均衡

        硬件负载均衡是通过专门的硬件设备来实现负载均衡功能,是专用的负载均衡设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10

硬件负载均衡的优点:

  • 功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法。
  • 性能强大:性能远超常见的软件负载均衡器。
  • 稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。
  • 安全防护:还具备防火墙、防 DDoS 攻击等安全功能,以及支持 SNAT 功能。

硬件负载均衡的缺点:

  • 价格贵;
  • 扩展性差,无法进行扩展和定制;
  • 调试和维护比较麻烦,需要专业人员;

(三)软件负载均衡

        软件负载均衡从通信层面来看,又可以分为四层和七层负载均衡。

  •    七层负载均衡:就是可以根据访问用户的 HTTP 请求头、URL 信息将请求转发到特定的主机。
    • DNS 重定向,原理:基于 DNS 查询缓存,按照负载情况返回不同服务器的 IP 地址。

    • HTTP 重定向,原理是:根据用户的 HTTP 请求计算出一个真实的服务器地址,将该服务器地址写入 HTTP 重定向响应中,返回给浏览器,由浏览器重新进行访问。

    • 反向代理,原理:反向代理(Reverse Proxy)方式是指以 代理服务器 来接受网络请求,然后 将请求转发给内网中的服务器,并将从内网中的服务器上得到的结果返回给网络请求的客户端。反向代理负载均衡属于七层负载均衡。反向代理服务的主流产品:Nginx、Apache

  • 四层负载均衡:基于 IP 地址和端口进行请求的转发。
    • 修改 IP 地址,原理:IP 负载均衡是在网络层通过修改请求目的地址进行负载均衡。

    • 修改 MAC 地址

        软件负载均衡,可以在普通的服务器上运行负载均衡软件,实现负载均衡功能。目前常见的有 NginxHAproxyLVS。其中的区别:

  • Nginx:七层负载均衡,支持 HTTP、E-mail 协议,同时也支持 4 层负载均衡;
  • https://zhuanlan.zhihu.com/p/134220193?utm_id=0
  • HAproxy:支持七层规则的,性能也很不错。OpenStack 默认使用的负载均衡软件就是 HAproxy;
  • LVS:运行在内核态,性能是软件负载均衡中最高的,严格来说工作在三层,所以更通用一些,适用各种应用服务

软件负载均衡的优点:

  • 易操作:无论是部署还是维护都相对比较简单;
  • 便宜:只需要服务器的成本,软件是免费的;
  • 灵活:4 层和 7 层负载均衡可以根据业务特点进行选择,方便进行扩展和定制功能。

负载均衡算法

根据负载均衡算法在候选服务器列表选出一个服务器;

将请求数据发送到该服务器上。

负载均衡算法的特性及原理:轮询、随机、最小活跃数、源地址哈希、一致性哈希

负载均衡常用算法-CSDN博客

参考文章

https://zhuanlan.zhihu.com/p/346907076?utm_id=0

https://zhuanlan.zhihu.com/p/38452802?utm_id=0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值