什么是负载平衡?

什么是负载平衡?

Scroll Down

QHQ-【问题描述】

什么是负载平衡?负载平衡有什么用?具体功能有什么?具体应用有?未来趋势会怎样?


概述

随着网络的出现,人们便开始频频使用各种智能设备进行各种精神享受,然而面对庞大的数据流量,各网站的访问十分集中,以致于网络服务器变得很拥挤、速度很慢。面对网络服务器岌岌可危的状况,相关科研人员针对该现象发明了负载均衡器,那么负载均衡器究竟有什么作用呢?接下来就让我们一起来了解关于负载均衡器的问题吧!

  什么是负载均衡器

顾名思义,负载均衡器主要采取高端技术――负载均衡技术,它可以利用该技术进行各种灵活的分配计算将全部的网络请求均衡地分布到其他服务器上,通过合理管理每天的网上数据流量来减轻单个服务器上的负担,力求达到使网络访问者享受最佳的联网体验。

通俗的说: 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

  • 一个没有负载均衡的 web 架构类似下面这样:

1

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

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

2

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

负载均衡器的形式

  负载均衡器的形式可谓是多种多样,除了单纯作为负载均衡器外,有些负载均衡器还可在交换设备中置于网络服务器和互联网之间,而还有的负载均衡器则利用网络适配器将该功能集成至PC当中。

  负载均衡器的功能

  1. 负载均衡器具有提供服务一致性的功能,负载均衡器通过读取客户端所发出请求内的信息,进行重写报头程序然后将请求发送至合适的服务器上,该服务器会维护着该客户端信息。在http通信当中,负载均衡器提供服务一致性的功能就得到了很好的发挥,但提供该服务的途径并不是非常安全。但若将消息加密后,负载均衡器就无法读取隐藏其中的信息了。
  2. 当服务集群中的某个节点无法成功处理请求时,那么该请求就会被发往其他节点上去,当请求成功发至另一节点后,原节点上的请求信息就会自动消失了。
  3. 由于所有的客户端请求都会先经过负载均衡器,所以负载均衡器具有统计计量的功能,利用该功能负载均衡器就可以准确统计出各阶段各种流量流动以及各项目进行的次数等,从而网络就可以适当调整系统性能了。

负载均衡器可以处理什么样的请求?

负载均衡器的管理员能主要为下面四种主要类型的请求设置转发规则:

  • HTTP
  • HTTPS
  • TCP
  • UDP

负载均衡器如何选择要转发的后端服务器?

负载均衡器一般根据两个因素来决定要将请求转发到哪个服务器。首先,确保所选择的服务器能够对请求做出响应,然后根据预先配置的规则从健康服务器池(healthy pool)中进行选择。

因为,负载均衡器应当只选择能正常做出响应的后端服务器,因此就需要有一种判断后端服务器是否「健康」的方法。为了监视后台服务器的运行状况,运行状态检查服务会定期尝试使用转发规则定义的协议和端口去连接后端服务器。如果,服务器无法通过健康检查,就会从池中剔除,保证流量不会被转发到该服务器,直到其再次通过健康检查为止。

负载均衡算法

负载均衡算法决定了后端的哪些健康服务器会被选中。几个常用的算法:

  • Round Robin(轮询): 为第一个请求选择列表中的第一个服务器,然后按顺序向下移动列表直到结尾,然后循环。
  • Least Connections(最小连接): 优先选择连接数最少的服务器,在普遍会话较长的情况下推荐使用。
  • Source: 根据请求源的 IP 的散列(hash)来选择要转发的服务器。这种方式可以一定程度上保证特定用户能连接到相同的服务器。

负载均衡器的应用

  对于网络各个核心部分数据流量增长迅速等问题,单一设备根本承担不住,所以为了加强处理能力,同时也为了提高资源利用,如今很多企业纷纷采取负载均衡技术,简单快捷,为自己的企业减掉很多不必要的麻烦。 如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器。可以通过 Source 算法基于客户端的 IP 信息创建关联,或者使用粘性会话(sticky sessions)。

  • 最后,想要解决负载均衡器的单点故障问题,可以将第二个负载均衡器连接到第一个上,从而形成一个集群。
3

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

  • 一个使用浮动 IP 的负载均衡架构示意图:

4

负载均衡器的未来走势

  时代发展的速度我们有目共睹,谁能猜想得到将来的事情呢?但是,随着科技越来越高端,网络数据必定呈上升趋势,所以负载均衡器在未来的生活中一定是必不可少的一种设备!

参考一

参考二