什么是负载均衡,为何要做负载均衡

0471tv.com120
  1. 什么是负载均衡,为何要做负载均衡
  2. 什么是负载均衡,为何要做负载均衡

    什么是负载均衡,为何要做负载均衡

    一、什么是负载均衡

    当单个节点的服务,无法支持当前的大量请求时,我们会部署多个节点,即所谓的集群,此时要使每个节点收到的请求均匀的算法,这个策略就是所谓的负载均衡了。

    什么是负载均衡,为何要做负载均衡 - 真时天下

    负载均衡

    常见的负载均衡算法,有权重随机、Hash、轮询

    1.权重随机

    这个是最简单,也是最常用的负载均衡算法,即每个请求过来,会随机到任何一个服务节点上,主流的rpc框架Dubbo,默认使用基于权重随机算法。

    2.Hash

    可以将客服端即请求端的ip,通过hash计算,得到一个数值,再取服务节点数的模,分配到对应的服务节点上。

    3.轮询

    将请求按照顺序,依次分配到节点1、节点2、节点3等节点上,如此循环往复。

    二、为什么要做负载均衡

    想想如果没有负载均衡算法,我们的请求有可能都打到同一节点上,有可能将这个节点给打死,而其他节点的机器闲置着没有提供服务,浪费资源。所以这就是负载均衡算法存在的意义了,可以将请求合理分发到各个节点,实现真正意义上多个节点提供服务的效果。

    想想如果没有负载均衡算法,我们的请求有可能都打到同一节点上,有可能将这个节点给打死,而其他节点的机器闲置着没有提供服务,浪费资源。所以这就是负载均衡算法存在的意义了,可以将请求合理分发到各个节点,实现真正意义上多个节点提供服务的效果。

    ‬负载均衡是分配网络或计算资源,以使工作负载在多个资源上分配,以达到最佳性能或最大利用率的技术。负载均衡技术在现代技术环境中非常重要,可以处理大量的请求,确保在高流量情况下,系统的可用性和性能都能保持稳定。

    做负载均衡的主要原因如下:

    1、提高系统的可用性和容错性:当某个服务器出现故障时,可以自动将请求分配到其他健康的服务器上,确保系统的可用性不受影响。

    2、提高系统的性能和扩展性:通过负载均衡,可以将请求均衡地分配到多台服务器上,这样可以提高系统的响应速度和处理能力,避免某些服务器负载过高而导致系统崩溃。

    3、实现业务需求的灵活部署:负载均衡能够将请求按照一定的策略分配到不同的服务器上,可以通过配置负载均衡的规则,来实现复杂的业务需求,例如将不同地区的用户请求分配到不同的服务器上进行处理,以避免网络拥塞和延迟。

    3、实现业务需求的灵活部署:负载均衡能够将请求按照一定的策略分配到不同的服务器上,可以通过配置负载均衡的规则,来实现复杂的业务需求,例如将不同地区的用户请求分配到不同的服务器上进行处理,以避免网络拥塞和延迟。

    我举个简单的例子。

    大家都逛过超市。小超市一般就一个收银台,而大超市一般有好几个收银台。为什么?因为大超市的人流量大啊。如果大超市只有一个收银台,那可能买个东西得好几个小时,那还不如去小超市

    有了多个收银台,那就需要确保每个收银台的人基本都是差不多的。如果大家还是挤到一个收银台去结账,那其它收银台开了还有什么意义?

      有了多个收银台,那就需要确保每个收银台的人基本都是差不多的。如果大家还是挤到一个收银台去结账,那其它收银台开了还有什么意义?

    每个收银台平均时间内处理客户的数量就是负载

    每个收银台的负载基本相当,就是负载均衡

    确保每个收银台的负载基本相当的算法,就是负载均衡算法

      确保每个收银台的负载基本相当的算法,就是负载均衡算法

    也就是大家选择哪个收银台的方法,就是负载均衡算法。

      也就是大家选择哪个收银台的方法,就是负载均衡算法。

    假设大家比较佛性,逛到哪个收银台就到哪个收银台结账,那这就是随机算法

    • 假设大家知道某个收银员业务熟练,速度很快,虽然是随机,但是大家会更偏向那个收银台,这就是加权随机
    • 假设大家都按次序,第一个人到第一个收银台,第二个人到第二个收银台,以此类推,那这就是轮询算法
    • 假设大家知道某个收银员业务熟练,速度很快,虽然是轮询,但是大家会更偏向那个收银台,这就是加权轮询
    • 假设大家都比较精明,看到哪个队伍人最少就到哪个收银台,那这就是最小连接算法
    • 假设超市有6个收银台,但是规定,男性到1,3,5号收银台,女性到2,4,6号收银台,这就是源地址hash
    • 假设超市有6个收银台,但是均分到了2^32个虚拟收银台,男性到奇数号虚拟收银台,女性到偶数号虚拟收银台,这就是一致性hash环
    • 假设大家知道某个收银员业务熟练,速度很快,虽然是随机,但是大家会更偏向那个收银台,这就是加权随机
    • 假设大家都按次序,第一个人到第一个收银台,第二个人到第二个收银台,以此类推,那这就是轮询算法
    • 假设大家知道某个收银员业务熟练,速度很快,虽然是轮询,但是大家会更偏向那个收银台,这就是加权轮询
    • 假设大家都比较精明,看到哪个队伍人最少就到哪个收银台,那这就是最小连接算法
    • 假设超市有6个收银台,但是规定,男性到1,3,5号收银台,女性到2,4,6号收银台,这就是源地址hash
    • 假设超市有6个收银台,但是均分到了2^32个虚拟收银台,男性到奇数号虚拟收银台,女性到偶数号虚拟收银台,这就是一致性hash环
    • 负载均衡是一种计算机技术,用来在多个计算机(集群)、网络连接、cpu、或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小响应时间、同时避免过载的目的。

      举例:假设有大量的用户同时登陆微信,微信需要对所有的用户进行鉴权,也就是判断密码是否正确,如果只是用一台机器的话,同时处理上亿条请求,那每条请求响应的时间就不能保证,机器的负载也会过高,有挂掉的风险,如果同时部署几十台服务器来进行处理,每台服务器处理一部分请求,那响应时间和负载都可以得到有效的控制。

      举例:假设有大量的用户同时登陆微信,微信需要对所有的用户进行鉴权,也就是判断密码是否正确,如果只是用一台机器的话,同时处理上亿条请求,那每条请求响应的时间就不能保证,机器的负载也会过高,有挂掉的风险,如果同时部署几十台服务器来进行处理,每台服务器处理一部分请求,那响应时间和负载都可以得到有效的控制。

      负载均衡通俗的说就是将业务流量平均分摊到多条不同链路上。

      负载均衡在实现机制上有不同的实现方式:

      按照数据包来进行均衡,前一个数据包从第一条链路走,下一个数据包走第二条链路,这样往下轮流分配;

      按照源地址或目的地址方式均衡,将相同的源或目的地走一条链路的方式;

      其它标记的方式进行均衡;

      负载均衡的链路实现方式

      物理链路叠加方式;

      逻辑链路叠加方式;

      路由协议方式;

      为何要做负载均衡?

        为何要做负载均衡?

      单条链路或者服务器性能不够,需要分摊;

      • 冗余需要,服务器宕机或者链路断线不影响业务;
    • 冗余需要,服务器宕机或者链路断线不影响业务;
    • 标签: #arp单机游戏