精华内容
下载资源
问答
  • 常见负载均衡方式

    2020-01-31 14:07:46
    常见负载均衡系统包括三种:DNS负载均衡、硬件负载均衡和软件负载均衡。 一、DNS负载均衡 一般用来实现地理级别的均衡。其本质是DNS解析一个域名可以返回不同的IP地址。  优点:简单、成本低;就近访问,提升...

           常见的负载均衡系统包括三种:DNS负载均衡、硬件负载均衡和软件负载均衡。

    一、DNS负载均衡

         一般用来实现地理级别的均衡。其本质是DNS解析一个域名可以返回不同的IP地址。

         DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

      优点:简单、成本低;就近访问,提升访问速度;

           缺点:1)更新不及时:DNS缓存时间比较长,修改DNS配置后,由于缓存的原因,还是有很多用户会继续访问修改前的IP。

                     2)扩展性差:控制权在域名商那里,无法根据业务特点会对其做更多的定制化功能和扩展特性。

                      3)分配策略比较简单。支持的算法少;不能根据系统和服务的状态来判断负载。

     

    二、硬件负载均衡

             目前业界典型的硬件负载均衡设备有两款:F5和A10。

             优点:功能强大,性能强大,硬件负载均衡可以支持100以上并发。稳定性高、支持安全防护;

            缺点:贵。F5和A10相当于“马6”和“宝马、Q7”; 扩展能力差;

            用途:常用来实现集群级别的负载均衡。

    三、软件负载均衡

         通过负载均衡软件来实现负载均衡功能,常见的有Nginx和LVS;

        性能:一般Linux服务器上装一个Nginx大概能到5万/秒并发;LVS的性能是十万级~80万/秒;

        优点:简单、便宜、灵活;

       缺点:性能一般、功能没有硬件负载均衡好么强大、不具有安全防护功能。

     用途:常用来实现机器级别的负载均衡。

    负载均衡的算法:

    1)轮询、:按照顺序轮流分配到服务器上。

    2)加权轮询:一般根据服务器硬件配置作为权重考量进行任务分配。

    3)负载最低优先:依据连接数、Http请求数、CPU负载、I/O负载来衡量服务器压力。

    4)性能最优:

    5)Hash算法

    展开全文
  • 几种常见负载均衡方式

    千次阅读 2018-07-13 21:12:46
    DNS负载均衡:DNS是最简单也最常见负载均衡方式,一般用来实现地理级别的均衡,比如,北方的用户访问北京的机房,南方的用户访问上海的机房。DNS的本质是一个域名可以在DNS中对应多个IP地址,不同地域的用户在请求...

        1.DNS负载均衡:DNS是最简单也最常见的负载均衡方式,一般用来实现地理级别的均衡,比如,北方的用户访问北京的机房,南方的用户访问上海的机房。DNS的本质是一个域名可以在DNS中对应多个IP地址,不同地域的用户在请求DNS服务时,DNS服务器会根据请求来源IP,解析出距离用户最近的服务器IP地址,实现就近访问。大多网站使用DNS作为第一级的负载均衡方式,一般情况下DNS负载均衡中心会将请求转发到CDN、机房级别的反向代理,网关等。DNS负载均衡的优点是通⽤(全球通⽤)、成本低(申请域名,注册DNS即可),但缺点也⽐较明显,主要体现在: 1).缓存的时间⽐较⻓,即使将某台业务机器从DNS服务器上删除,由于缓存的原因,还是有很多⽤户会继续访问已经被删除的机器。2).不够灵活。DNS不能感知后端服务器的状态,只能根据配置策略进⾏负载均衡,⽆法做到更加灵活的负载均衡策略。

      2.硬件负载均衡:是通过单独的硬件设备来实现负载均衡功能,⽬前业界典型的硬件负载均衡设备有两款:F5A10。这类设备性能强劲、功能强⼤,但价格都不便宜,⼀般 只有“⼟豪”公司才会考虑使⽤此类设备。普通业务量级的公司⼀是负担不起,⼆是业务量没那么⼤,⽤这些设备也是浪费。硬件负载均衡的优点是: 1).功能强⼤:全⾯⽀持各层级的负载均衡,⽀持全⾯的负载均衡算法,⽀持全局负载均衡。 2).性能强⼤:对⽐⼀下,软件负载均衡⽀持到10万级并发已经很厉害了,硬件负载均衡可以⽀持100万以上的并发。3). 稳定性⾼:商⽤硬件负载均衡,经过了良好的严格测试,经过⼤规模使⽤,稳定性⾼。 4).⽀持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防⽕墙、防DDoS攻击等安全功能。 硬件负载均衡的缺点是: 价格昂贵,扩展能⼒差:硬件设备,可以根据业务进⾏配置,但⽆法进⾏扩展和定制。

       3.软件负载均衡:通过负载均衡软件实现负载均衡,常见的有nginx和lvs,其中lvs是四层负载均衡,nginx是七层负载均衡,四层与七层负载均衡的区别就在于协议和灵活性,nginx支持http和e-mail协议,四层处于网络层,与协议无关,几乎所有应用都可以做,比如数据库等,七层负载均衡的优势是其理解应用层协议,可以基于此做应用相关的扩展,比如失败重试;相比硬件负载均衡,软件负载均衡特点是灵活,可自行开发扩展,价格优惠(1台普通linux服务器价格1万元左右)

    3.1 四层负载均衡:在网络层(IP层)做负载均衡,LVS就工作在这一层,LVS支持三种模式

          3.1.1.VS/NAT,利用网络地址转换(net address translation)技术修改IP报文的源IP地址以及目的IP地址,请求与响应都经过调度器。使用linux服务器做VS/NAT调度时,在来自外部的IP数据包通过网卡进入某个进程的内存地址空间之前,都要先经过内核缓冲区。那么此时Linux就拥有对IP数据包的绝对操作权,Linux内核可以改变IP数据包以实现对路由规则的改变。实现IP转发,由于转发在内核中进行,相对于工作在用户态的反向代理,效率要高很多

          3.1.2.VS/TUN,利用IP隧道技术将请求报文转发至真实服务器,而真实服务器的响应直接返回客户端,不经过调度器,性能比NAT模式好很多

          3.1.3.VS/DR,通过修改请求报文的MAC地址,将请求转发到真实服务器,真实服务器的响应直接返回给客户端,不经过调度器,省去了IP隧道的开销,性能最优。DR模式下,调度服务器和多个真实服务器共享一个VIP(虚拟IP),请求报文到达调度器后,调度器将报文的目的MAC地址改为某一个真实服务器的MAC地址,然后将请求转发过去,之后响应由该真实服务器直接返回给客户端 

    LVS的后两种模式下,由于响应都不经过调度器,除了响应速度更快以外,还可以节省大量网络带宽。LVS原理简单,调度时消耗很小,所以性能比应用层负载均衡高,其性能级别在十万级,由于LVS工作在网络底层,具有更好的通用性,但也正因如此,它无法获悉应用层的协议细节,也就无法做出应对,比如应用响应超时异常等错误,LVS是无法了解到的,而应用层负载均衡就可以应对

    3.2七层负载均衡:应用层的负载均衡,其作为应用服务器的上层,会设置内外两个网卡,对外接受并响应客户端请求,对内将客户端请求转发给应用服务器并接受应用服务器的返回。nginx是应用层负载均衡的典型代表,性能级别在万级,一台普通的linux服务器装上nginx大约能达到5万/秒tps

    应用层负载均衡由于可以获取应用层协议的细节,所以其能力非常强大而灵活,比如上面说的超时异常错误,nginx服务器在收到此类响应时,可以选择重试其他真实服务器实现容错

     

    展开全文
  • 常见负载均衡策略

    2020-07-27 22:06:11
    常见负载均衡策略 负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法。 轮循 Round Robin: 这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有...

    什么是负载均衡

    负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。

    负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

    负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法。

    轮循

    Round Robin: 这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量 以及负载相同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载相同。基于这个前提,轮循调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。 这可能导致能力较弱的服务器超载。

    加权轮循

    Weighted Round Robin: 这种算法解决了简单轮循调度算法的缺点:传入的请求按顺序被分配到集群中服务器,但是会考虑提前为每台服务器分配的权重。管理员只是简单的通过服务器的处理能力来定义各台服务器的权重。例如,能力最强的服务器 A 给的权重是 100,同时能力最低的服务器给的权重是 50。这意味着在服务器 B 接收到第一个请求之前,服务器 A 会连续的接收到 2 个请求,以此类推。

    最少连接数

    Least Connection: 以上两种方法都没有考虑的是系统不能识别在给定的时间里保持了多少连接。因此可能发生,服务器 B 服务器收到的连接比服务器 A 少但是它已经超载,因为 服务器 B 上的用户打开连接持续的时间更长。这就是说连接数即服务器的负载是累加的。这种潜在的问题可以通过 “最少连接数” 算法来避免:传入的请求是根据每台服务器当前所打开的连接数来分配的。即活跃连接数最少的服务器会自动接收下一个传入的请求。基本上和简单轮询的原则相同:所有拥有虚拟服务的服务器资源容量应该相近。值得注意的是,在流量率低的配置环境中,各服务器的流量并不是相同的,会优先考虑第一台服务器。这是因为,如果所有的服务器是相同的,那么 第一个服务器优先,直到第一台服务器有连续的活跃流量,否则总是会优先选择第一台服务器。

    源 IP 哈希

    Source IP Hash: 这种方式通过生成请求源 IP 的哈希值,并通过这个哈希值来找到正确的真实服务器。这意味着对于同一主机来说他对应的服务器总是相同。使用这种方式,你不需要保存任何源 IP。但是需要注意,这种方式可能导致服务器负载不平衡。

    最少连接数慢启动时间

    Least Connection Slow Start Time: 对最少连接数和带权重的最小连接数调度方法来说,当一个服务器刚加入线上环境时,可以为其配置一个时间段,在这段时间内连接数是有限制的而且是缓慢增加的。这为服务器提供了一个‘过渡时间’以保证这个服务器不会因为刚启动后因为分配的连接数过多而超载。这个值在 L7 配置界面设置。

    加权最少连接

    Weighted Least Connection: 如果服务器的资源容量各不相同,那么 “加权最少连接” 方法更合适:由管理员根据服务器情况定制的权重所决定的活跃连接数一般提供了一种对服务器非常平衡的利用,因为他它借鉴了最少连接和权重两者的优势。通常,这是一个非常公平的分配方式,因为它使用了连接数和服务器权重比例;集群中比例最低的服务器自动接收下一个请求。但是请注意,在低流量情况中使用这种方法时,请参考 “最小连接数” 方法中的注意事项。

    基于代理的自适应负载均衡

    Agent Based Adaptive Balancing: 除了上述方法之外,负载主机包含一个自适用逻辑用来定时监测服务器状态和该服务器的权重。对于非常强大的 “基于代理的自适应负载均衡” 方法来说,负载主机以这种方式来定时检测所有服务器负载情况:每台服务器都必须提供一个包含文件,这个文件包含一个 0~99 的数字用来标明改服务器的实际负载情况 (0 = 空前,99 = 超载,101 = 失败,102 = 管理员禁用),而服务器同构 http get 方法来获取这个文件;同时对集群中服务器来说,以二进制文件形式提供自身负载情况也是该服务器工作之一,然而,并没有限制服务器如何计算自身的负载情况。根据服务器整体负载情况,有两种策略可以选择:在常规的操作中,调度算法通过收集的服务器负载值和分配给该服务器的连接数的比例计算出一个权重比例。因此,如果一个服务器负载过大,权重会通过系统透明地做调整。和加权轮循调度方法一样,不正确的分配可以被记录下来使得可以有效地为不同服务器分配不同的权重。然而,在流量非常低的环境下,服务器报上来的负载值将不能建立一个有代表性的样本;那么基于这些值来分配负载的话将导致失控以及指令震荡。 因此,在这种情况下更合理的做法是基于静态的权重比来计算负载分配。当所有服务器的负载低于管理员定义的下限时,负载主机就会自动切换为加权轮循方式来分配请求;如果负载大于管理员定义的下限,那么负载主机又会切换回自适应方式。

    固定权重

    Fixed Weighted: 最高权重只有在其他服务器的权重值都很低时才使用。然而,如果最高权重的服务器下降,则下一个最高优先级的服务器将为客户端服务。这种方式中每个真实服务器的权重需要基于服务器优先级来配置。

    加权响应

    Weighted Response: 流量的调度是通过加权轮循方式。加权轮循中 所使用的权重 是根据服务器有效性检测的响应时间来计算。每个有效性检测都会被计时,用来标记它响应成功花了多长时间。但是需要注意的是,这种方式假定服务器心跳检测是基于机器的快慢,但是这种假设也许不是总能够成立。所有服务器在虚拟服务上的响应时间的总和加在一起,通过这个值来计算单个服务物理服务器的权重;这个权重值大约每 15 秒计算一次。

    展开全文
  • 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度...

    来源:Lee_ypp

    链接:http://my.oschina.net/leeypp1/blog/294807

    1、什么是LVS?

    首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

    为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS集群采用三层结构,其体系结构如图所示:

    2a848a61df77224a00386cfc73134b6d.png

    LVS集群的体系结构

    2、LVS主要组成部分为:

    负载调度器(load balancer/ Director),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

    服务器池(server pool/ Realserver),是一组真正执行客户请求的服务器,执行的服务一般有WEB、MAIL、FTP和DNS等。

    共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

    3、LVS负载均衡方式:

    ◆Virtual Server via Network Address Translation NAT(VS/NAT)

    VS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可。客户端可以是任意操作系统,但此方式下,一个Director能够带动的RealServer比较有限。在VS/NAT的方式下,Director也可以兼为一台RealServer。VS/NAT的体系结构如图所示。

    da7b4da57ade350cbfa2505bd1caefcd.png

    VS/NAT的体系结构

    ◆Virtual Server via IP Tunneling(VS/TUN)

    IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

    它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为 VIP 的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。

    b066bba606c99157ee15db11bf3d161b.png

    VS/TUN的体系结构

    VS/TUN的工作流程:

    1097c84acd23a54fcf18e08f58ecd22b.png

    ◆Virtual Server via Direct Routing(VS/DR)

    VS/DR方式是通过改写请求报文中的MAC地址部分来实现的。Director和RealServer必需在物理上有一个网卡通过不间断的局域网相连。RealServer上绑定的VIP配置在各自Non-ARP的网络设备上(如lo或tunl),Director的VIP地址对外可见,而RealServer的VIP对外是不可见的。RealServer的地址即可以是内部地址,也可以是真实地址。

    5aae6b390ef4e41cf6f319a9e79099e1.png

    VS/DR的体系结构

    VS/DR的工作流程:

    VS/DR的工作流程如图所示:它的连接调度和管理与VS/NAT和VS/TUN中的一样,它的报文转发方法又有不同,将报文直接路由给目标服务器。在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。

    1097c84acd23a54fcf18e08f58ecd22b.png

    4、三种负载均衡方式比较:

    ◆Virtual Server via NAT

    VS/NAT 的优点是服务器可以运行任何支持TCP/IP的操作系统,它只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。缺点是它的伸缩能力有限,当服务器结点数目升到20时,调度器本身有可能成为系统的新瓶颈,因为在VS/NAT中请求和响应报文都需要通过负载调度器。我们在Pentium166 处理器的主机上测得重写报文的平均延时为60us,性能更高的处理器上延时会短一些。假设TCP报文的平均长度为536 Bytes,则调度器的最大吞吐量为8.93 MBytes/s. 我们再假设每台服务器的吞吐量为800KBytes/s,这样一个调度器可以带动10台服务器。(注:这是很早以前测得的数据)

    基于 VS/NAT的的集群系统可以适合许多服务器的性能要求。如果负载调度器成为系统新的瓶颈,可以有三种方法解决这个问题:混合方法、VS/TUN和 VS/DR。在DNS混合集群系统中,有若干个VS/NAT负调度器,每个负载调度器带自己的服务器集群,同时这些负载调度器又通过RR-DNS组成简单的域名。

    但VS/TUN和VS/DR是提高系统吞吐量的更好方法。

    对于那些将IP地址或者端口号在报文数据中传送的网络服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号。这会带来实现的工作量,同时应用模块检查报文的开销会降低系统的吞吐率。

    ◆Virtual Server via IP Tunneling

    在VS/TUN 的集群系统中,负载调度器只将请求调度到不同的后端服务器,后端服务器将应答的数据直接返回给用户。这样,负载调度器就可以处理大量的请求,它甚至可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈。即使负载调度器只有100Mbps的全双工网卡,整个系统的最大吞吐量可超过 1Gbps。所以,VS/TUN可以极大地增加负载调度器调度的服务器数量。VS/TUN调度器可以调度上百台服务器,而它本身不会成为系统的瓶颈,可以用来构建高性能的超级服务器。VS/TUN技术对服务器有要求,即所有的服务器必须支持“IP Tunneling”或者“IP Encapsulation”协议。目前,VS/TUN的后端服务器主要运行Linux操作系统,我们没对其他操作系统进行测试。因为“IP Tunneling”正成为各个操作系统的标准协议,所以VS/TUN应该会适用运行其他操作系统的后端服务器。

    ◆Virtual Server via Direct Routing

    跟VS/TUN方法一样,VS/DR调度器只处理客户到服务器端的连接,响应数据可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。跟VS/TUN相比,这种方法没有IP隧道的开销,但是要求负载调度器与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上。

    三种LVS负载均衡技术的优缺点归纳以下表:

    c35a1779d2d2806ed2057368a72059ad.png

    注:以上三种方法所能支持最大服务器数目的估计是假设调度器使用100M网卡,调度器的硬件配置与后端服务器的硬件配置相同,而且是对一般Web服务。使 用更高的硬件配置(如千兆网卡和更快的处理器)作为调度器,调度器所能调度的服务器数量会相应增加。当应用不同时,服务器的数目也会相应地改变。所以,以上数据估计主要是为三种方法的伸缩性进行量化比较。

    5、lvs的负载调度算法

    在内核中的连接调度算法上,IPVS已实现了以下八种调度算法:

    ◆轮叫调度(Round­Robin Schedul ing )

    轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i=(i+1)mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

    ◆加权轮叫调度(Weighted Round­Robin Scheduling )

    加权轮叫调度 (Weighted Round­Robin Scheduling)算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。

    加权轮叫调度算法是按权值的高 低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服 务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

    ◆最小连接调度(Least­Connect ion Schedul ing )

    最小连接调度(Least­ Connect ion Scheduling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。

    ◆加权最小连接调度(Weighted Least­Connectio n Scheduling)

    加权最小连接调 度(Weighted Least­Connectio n Scheduling)算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

    ◆基于局部性的最少链接(Locality­Based Least Connections Schedulin g )

    基于局部性的最少链接调度(Locality­Based Least Connections Scheduling,以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处理能力。

    LBLC调度算法先根据请求的目标IP 地址 找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于其一半的工 作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

    ◆带复制的基于局部性最少链接(Locality­Based Least Connectio ns with Replication Scheduling)

    带复制的基于局部性最少链接调度(Locality­Based Least Connectio ns with Replication Scheduling,以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。

    它与LBLC算法的不同之处是它要 维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。对于一个“热门”站点的服务请求,一台Cache 服务器可能会忙不过来处理这些请求。这时,LBLC调度算法会从所有的Cache服务器中按“最小连接”原则选出一台Cache服务器,映射该“热门”站点到这台Cache服务器,很快这台Cache服务器也会超载,就会重复上述过程选出新的Cache服务器。

    这样,可能会导致该“热门”站点的映像会出现 在所有的Cache服务器上,降低了Cache服务器的使用效率。LBLCR调度算法将“门站”点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载;当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器 数目。这样,该热门站点的映像不可能出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。

    LBLCR算法先根据请求的目标IP 地址找出该目标IP地址对应的服务器组;按“最小连接”原则从该服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载;则按“最小连接”原则从整个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服 务器从服务器组中删除,以降低复制的程度。

    ◆目标地址散列调度(Destinat ion Hashing Scheduling )

    目标地址散列调度 (Destinat ion Hashing Scheduling)算法也是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

    ◆源地址散列调度(Source Hashing Scheduling)

    源地址散列调度(Source Hashing Scheduling)算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法 的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP 地址,所以这里不一一叙述。在实际应用中,源地址散列 调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。

    展开全文
  • 常见负载均衡方案

    2020-02-28 22:58:28
    如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量 以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而...
  • 所谓负载均衡就是将外部发送过来的请求均匀或者根据某种算法分配到对称结构中的某一台服务器中。...对于我们来讲,所了解的最基本的负载均衡算法包括了:随机、轮询、一致性Hash等几种方式,接下来就
  • 负载均衡是我们对应高并发流量的一种常见处理方式 我们分两个方面来聊这个问题,一个是负载均衡的分类,一个是负载均衡常见算法。 1,负载均衡的分类 基本我们可以分为客户端负载均衡和服务端负载均衡 服务端负载...
  • 负载均衡是为了解决单一主机无法满足较大访问量的负载问题。将巨大的访问请求负载到不同的主机上面,以便使请求访问的响应速度不受主机效率的影响。每一个主机运行一个所需服务器程序的独立备份,例如Web服务器、FTP...
  • 什么是负载均衡负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送...
  • 如果所有的服务有相同或者相近的性能那么选择这种方式会使服务器负载相同。基于这个前提,轮询调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一...
  • 负载均衡是我们对应高并发流量的一种常见处理方式 我们分两个方面来聊这个问题,一个是负载均衡的分类,一个是负载均衡常见算法。 一:负载均衡的分类 基本我们可以分为客户端负载均衡和服务端负载均衡 1,服务端...
  • 简介负载均衡(Load Balance),本文主要介绍软件层面负载均衡常用的几种方案.负载均衡的目的主要是将服务能力分摊到多个操作单元上分别进行执行,从而共同完成工作作务. 从不同的视角,来采用负载均衡的方案是不同的,...
  • 是不是每次听别人谈论负载均衡,感觉好高大上,但是自己又不太懂?下面我们就来聊聊负载均衡 负载均衡是个啥? 负载均衡是由多台服务器以对称的方式组成...Web的负载均衡方式有很多,下面主要来讲讲四种常见的负载均...
  • xxl-job的实现方式 com.xxl.job.admin.core.route.strategy.ExecutorRouteFirst @Override public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList){ return new ReturnT&...
  • 负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务...其中IP负载均衡可以使用硬件设备或软件方式来实现。什么是web负载均衡服务器集群(Cluster)使得多个服务器节点能够协同工作,根据...
  • 当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。 高性能集群的复杂性主要体现在需要增加一个任务分配器,...DNS 是最简单也是最常见负载均衡方式,一般用来实现地理级别...
  • 其中IP负载均衡可以使用硬件设备或软件方式来实现。 一、什么是web负载均衡 服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为: 高性能集群:将单个重负载的请求分散到多个...
  • 三、实现负载均衡的几种方式 实现负载均衡有多种方式: 软件负载均衡:比如常见的Nginx、LVS。 硬件负载均衡;买相应硬件。 DNS负载均衡:通过DNS域名解析的方式,使多个服务器IP对应一个域名。 除了硬件外,下面是...
  • 0x00概要 负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发...其中IP负载均衡可以使用硬件设备或软件方式来实现。 0x01什么是web负载均衡 服...
  • DNS负载均衡,最基础的是轮询方式,循环返回不同的服务器IP地址。可以同时返回多个服务器IP地址,但是IP地址顺序在变化。用户会首先使用第一个IP地址进行访问。 现在有了改进版本。比如AWS Route53 。 DNS服务器...
  • nginx常见负载均衡策略 1. 轮询 nginx 默认的负载均衡策略就是轮询的方式,即每个请求按照时间的顺序逐一分配到不同的后台服务器,如果后台服务器挂掉,自动剔除。 upstream backserver { server 192.168.0.1:...
  • 常见负载均衡策略

    2019-10-02 03:02:09
    常见负载均衡策略 轮询(Round Robin) 轮询的实现方式比较简单,就是将请求以此分发到后端服务器中,将所有的请求均匀分配,均匀分配的坏处是通常后台服务器性能有差异,有时候希望性能较好的服务器可以多承担些...
  • 几种常见负载均衡

    2020-02-14 14:45:58
    几种方式: ...IP层负载均衡 链路层的负载均衡 1)http重定向 HTTP重定向服务器就是一个普通的服务器,当用户访问时,其会根据一定的算法得到服务器集群的一个真实服务器的IP地址,将其...
  • 3、LVS负载均衡方式: ◆Virtual Server via Network Address Translation NAT(VS/NAT) VS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可。客户端可以是任意操作系统,但此方式下,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 874
精华内容 349
关键字:

常见负载均衡方式