负载均衡及其分类

1 什么是负载均衡?

1.1 维基百科

负载平衡(Load Balancing)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。 主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。

1.2 知乎

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
一个没有负载均衡的 web 架构类似下面这样

没有负载均衡的Web架构

在这里用户是直连到 web 服务器,如果这个服务器宕机了,那么用户自然也就没办法访问了。另外,如果同时有很多用户试图访问服务器,超过了其能处理的极限,就会出现加载速度缓慢或根本无法连接的情况。

而通过在后端引入一个负载均衡器和至少一个额外的 web 服务器,可以缓解这个故障。通常情况下,所有的后端服务器会保证提供相同的内容,以便用户无论哪个服务器响应,都能收到一致的内容。

有负载均衡的Web架构

从图里可以看到,用户访问负载均衡器,再由负载均衡器将请求转发给后端服务器。在这种情况下,单点故障现在转移到负载均衡器上了。这里又可以通过引入第二个负载均衡器来缓解。

负载均衡器集群

当主负载均衡器发生了故障,就需要将用户请求转到第二个负载均衡器。因为 DNS 更改通常会较长的时间才能生效,因此需要能灵活解决 IP 地址重新映射的方法,比如浮动 IP(floating IP)。这样域名可以保持和相同的 IP 相关联,而 IP 本身则能在服务器之间移动。

浮动IP的负载均衡架构

2 负载均衡分类

负载均衡虽然不是什么非常特殊的黑科技,但它的技术实现可以有很多种,都能达到效果。
主要有DNS负载均衡和二、三、四、七层负载均衡。

2.1 DNS负载均衡

这种是属于较早出现的技术,其利用域名解析实现负载均衡,在DNS服务器配置多个A记录,这些A记录对应的服务器构成集群互相减轻服务压力。大型网站总是部分使用DNS解析,作为第一级负载均衡。

2.2 二层负载均衡(MAC)

二层负载均衡又叫链路层负载均衡,其对应OSI模型的第二层,基于MAC地址进行服务分发。

2.3 三层负载均衡(IP)

三层对应OSI模型的网络层,三层负载均衡提供一个虚拟IP对外提供服务,当请求进入负载均衡器后转发至集群中某个真实IP,这里的虚拟IP可能是一个外网IP,而真实IP可能是内网IP。

2.4 四层负载均衡(TCP)

OSI模型的四层主要协议是TCP/UDP,其特点是在IP负载均衡的基础上基于IP及端口号来进行负载均衡。

2.5 七层负载均衡(HTTP)

对应OSI模型的应用层, 基于虚拟的URL或其他应用层信息(例如:浏览器类别、语言)的负载均衡。

2.6 混合负载均衡及软件

在实际中我们可以混用多种技术。我们最常见的四层和七层负载均衡,如果没有第四层的基础也是做不到七层负载均衡的。

实现四层负载均衡的软件有:F5、LVS、Nginx、HAProxy。

实现七层负载均衡的软件有:HAProxy、Nginx、Apache、MySQL Proxy。

3 简单总结

1、负载均衡用于将工作负载合理分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性;

2、负载均衡分类:DNS负载均衡,二层(MAC)、三层(IP)、四层(IP+Port)、七层(HTTP)负载均衡;

3、常见的是四层及七层负载均衡,一般四层用LVS,七层用Nginx;

4、四层负载均衡效率更高、七层负载均衡更灵活。

本文首发于Gecco’s Blog,文章地址:https://ibabysong.com/posts/201910158.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值