精华内容
下载资源
问答
  • 2021-09-12 14:44:17

    负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀地分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
    当用户发现 Web 站点负载量非常大时,应当考虑使用负载均衡技术来将负载平均分摊到多个内部服务器上。如果有多个服务器同时执行某一个任务时,这些服务器就构成一个集群。使用集群技术可以用最少的投资获得接近于大型主机的性能。
    1.负载均衡技术的类型
    目前,比较常用的负载均衡技术主要有以下几种:
    (1)基于特定服务器软件的负载均衡。很多网络协议都支持“重定向”功能,例如,在 HTTP 协议中支持 Location 指令,接收到这个指令的浏览器将自动重定向到 Location 指明的另一个 URL 上。由于发送 Location 指令比起执行服务请求,对 Web 服务器的负载要小得多,因此可以根据这个功能来设计一种负载均衡的服务器。当 Web 服务器认为自己负载较大的时候,它就不再直接发送回浏览器请求的网页,而是送回一个 Location 指令,让浏览器在服务器集群中的其他服务器上获得所需要的网页。
    在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难。例如,一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送 Location 指令?Location 指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用 CGI(包括使用 FastCGI 或 mod_perl 扩展来改善性能)来模拟这种方式去分担负载,而 Web 服务器仍然保持简洁、高效的特性。此时,避免 Location 循环的任务将由用户的 CGI 程序来承担。
    (2)基于 DNS(Domain Name Server,域名服务器)的负载均衡。通过 DNS 服务中的随机名字解析来实现负载均衡,在 DNS 服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的 Web 服务器,从而达到负载均衡的目的。
    DNS 负载均衡的优点是简单易行,并且服务器可以位于互联网的任意位置上,当前使用在包括 Yahoo 在内的 Web 站点上。然而它也存在不少缺点,一个缺点是为了保证 DNS 数据及时更新,一般都要将 DNS 的刷新时间设置得较小,但太小就会造成太大的额外网络流量,并且更改了 DNS 数据之后也不能立即生效;另一个缺点是 DNS 负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服务器上的偶然情况。
    (3)反向代理负载均衡。使用代理服务器可以将请求转发给内部的 Web 服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求均匀地转发给多台内部 Web 服务器,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部 Web 服务器,而这种代理方式是多个客户使用它访问内部 Web 服务器,因此也被称为反向代理模式。
    实现这个反向代理能力并不能算是一个特别复杂的任务,但是在负载均衡中要求特别高的效率,这样实现起来就不是十分简单的事了。每针对一次代理,代理服务器就必须打开两个连接,一个为对外的连接,一个为对内的连接。因此,当连接请求数量非常大的时候,代理服务器的负载也非常大,最后,反向代理服务器会成为服务的瓶颈。例如,使用 Apache 的 mod_rproxy 模块来实现负载均衡功能时,提供的并发连接数量受 Apache 本身的并发连接数量的限制。一般来讲,可以使用它来连接数量不是特别大、但每次连接都需要消耗大量处理资源的站点来进行负载均衡,例如搜寻。
    使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,以提供有益的性能;其具备额外的安全性,外部客户不能直接访问真实的服务器。并且实现起来可以采用较好的负载均衡策略,将负载非常均衡地分给内部服务器,不会出现负载集中到某个服务器的偶然现象。
    在这里插入图片描述
    (4)基于 NAT(Network Address Translation,网络地址转换)的负载均衡技术。网络地址转换指的是在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后,外部网络中的计算机就各自与自己转换得到的地址上的服务器进行通信,从而达到负载分担的目的。
    地址转换可以通过软件方式来实现,也可以通过硬件方式来实现。使用硬件方式进行操作一般称为交换,而当交换必须保存 TCP 连接信息的时候,这种针对 OSI/RM 网络层的操作就被称为第四层交换。支持负载均衡的网络地址转换为第四层交换机的一种重要功能,由于它基于定制的硬件芯片,因此其性能非常优秀,很多交换机声称具备 400MB~ 800MB 的第四层交换能力;然而也有一些资料表明,在如此快的速度下,大部分交换机就不再具备第四层交换能力了,而仅仅支持第三层甚至第二层交换。
    使用软件方式来实现基于网络地址转换的负载均衡则要实际得多,除了一些厂商提供的解决方法之外,更有效的方法是使用免费的自由软件来完成这项任务。其中包括 Linux Virtual Server Project 中的 NAT 实现方式。一般来讲,使用这种软件方式来实现地址转换,中心负载均衡器存在带宽限制,在 100MBps 的快速以太网条件下,能得到最高达 80MBps 的带宽,然而在实际应用中,可能只有 40MBps~60MBps 的可用带宽。
    (5)扩展的负载均衡技术。上面使用网络地址转换来实现负载分担,毫无疑问所有的网络连接都必须通过中心负载均衡器,那么如果负载特别大,以至于后台的服务器的数量不再在是几台、十几台,而是上百台甚至更多,这时,即便是使用性能优秀的硬件交换机也会遇到瓶颈。此时问题将转变为,如何将那么多台服务器分布到各个互联网的多个位置,分散网络负担。当然这可以通过综合使用 DNS 和 NAT 两种方法来实现,然而更好的方式是使用一种半中心的负载均衡方式。
    在这种半中心的负载均衡方式下,即当客户请求发送给负载均衡器的时候,中心负载均衡器将请求打包并发送给某个服务器,而服务器的回应请求不再返回给中心负载均衡器,而是直接返回给客户,因此中心负载均衡器只负责接受并转发请求,其网络负担就较小了。
    2.服务器负载均衡
    服务器负载均衡一般用于提高服务器的整体处理能力,并提高可靠性、可用性和可维护性,最终目的是加快服务器的响应速度,从而提高用户的体验度。
    负载均衡从结构上分为本地负载均衡(Local Server Load Balance)和全域负载均衡(Global Server Load Balance),前者是指对本地的服务器群做负载均衡,后者是指对分别放置在不同的地理位置、有不同的网络及服务器群之间做负载均衡。
    全域负载均衡有以下特点:
    (1)解决网络拥塞问题,服务就近提供,实现地理位置无关性;
    (2)对用户提供更好的访问质量;
    (3)提高服务器响应速度;
    (4)提高服务器及其他资源的利用效率;
    (5)避免了数据中心单点失效。

    更多相关内容
  •  目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。  我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里...
  • 分别介绍了软件实现负载均衡和硬件实现负载均衡的优缺点,以及一些相关知识的连接。
  • 负载均衡技术原理

    千次阅读 2021-02-24 22:01:54
    一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等 一、 引言 负载均衡(Load Balance)是指将负载(工作任务)进行平衡、分摊到多个操作单元上运行,促使多台设备共同更快、更高效完成某一项或者...

    参看文章:

    快速理解高性能HTTP服务端的负载均衡技术原理

    简介几种负载均衡原理

    浅谈几种常用负载均衡架构

    一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等


    一、 引言

    负载均衡(Load Balance)是指将负载(工作任务)进行平衡、分摊到多个操作单元上运行,促使多台设备共同更快、更高效完成某一项或者多项任务。负载均衡在现有网络结构基础上,提供了一种透明并且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力,增加吞吐量、提高网络的可用性和灵活性。

    负载均衡包含两方面的含义:

    • ①将一个复杂任务拆分成多个子任务,然后交由多个操作单元协作处理,最后共同完成这项任务。是不是有点像分布式计算呢?
    • ②将海量、高并发访问处理均分到多个处理单元中,雨露均沾,避免旱的旱死,涝的涝死。

    为什么要负载均衡?

    在网站创立之初,一般只需要一台服务器(通常为LAMP架构作为解决方案)对外提供服务即可,但是随着业务快速扩大,原先的架构依然无法满足现在的业务需求。此时就需要对服务器进行扩容,简单的说就是将多台服务器组成一个集群共同对外提供服务(架构一步到位了),通过负载均衡技术将用户的请求分流到不同的服务器上,从而达到扩容的目的,这便是负载均衡存在的意义。

    目前,负载均衡技术已经广泛地应用在网络之中。就拿全国人民都知晓的“双11购物节”而言,每一秒的订单量都是巨大的,只通过几台服务器完全无法满足这么多人同时访问。各个互联网巨头(淘宝、京东、微信、支付宝、抖音、美团等等)都是通过各种各样的技术来解决这么高的并发访问、海量数据存储等等,他们在满足自己业务需求的同时,将自己的解决方案通过搭建云平台来出售,供其他的小公司使用,从而降低小公司的运营成本(无需从头开始,一步一步来摸索高并发架构解决方案)。

    这些解决方案现在基本都是利用集群技术,达到最佳的资源使用、最大化吞吐率、最短的响应时间,避免单点过载问题。集群技术的使用,不可避免的会用到负载均衡技术,否则便无法发挥集群技术的优势。下面负载均衡技术做一个详细的介绍。

    二、 负载均衡实现分类

    负载均衡实现目前可以分为3类:

    基于DNS负载均衡

     

    基于硬件的负载均衡

    比如F5

    基于软件的负载均衡

    比如LVS, NGINX,Squid

    原理:当用户访问域名的时候(如www.taobao.com),会先向DNS服务器去解析域名对应的IP地址,这个时候我们可以让DNS服务器根据不同地理位置的用户返回不同的IP。比如杭州的用户就返回淘宝在杭州业务服务器的IP,北京的用户来访问的话,就返回淘宝在北京业务服务器所在的IP。

     

     

    在这个模式下,用户就相当于实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力,也提升了用户的访问速度。

    使用DNS做负载均衡的方案,天然的优势就是配置简单,实现成本非常低,无需额外的开发和维护工作。

    但是它也有一个明显的缺点:当配置修改后,生效不及时。这个是由于DNS的特性导致的,DNS一般会有多级缓存,所以当我们修改了DNS配置之后,由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。

    另外,使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在。

    有专门的硬件加持,可能比用软件处理要高效。在硬件负载均衡器中,最出名的就是F5负载均衡器:

    硬件负载均衡器特点只有一个:除了贵,什么都好。就这一个特点就导致它的市场没有那个普及,因此更多中小公司使用了软件的负载均衡技术。

    软件技术的负载均衡,基于OSI 网络模型来实现。我们通过OSI 7层模型来简单说明存在的负载均衡技术。

    软件负载均衡分类:

    • 二层负载均衡

    负载均衡服务器对外提供一个公网IP, 集群中的真正服务器使用相同的内网IP地址,但是MAC地址不同。当负载均衡服务器收到客户请求时,通过修改报文中的目的MAC地址,将报文分流到不同的设备上,从而达到负载均衡的目的。此技术好像不常用。

    • ​​​​​​​三层负载均衡

    负载均衡服务器对外提供一个公网IP, 集群中的真正服务器使用不同的内网IP地址。当负载均衡服务器收到客户请求时,通过修改报文中的目的IP地址,将报文分流到不同的设备上,从而达到负载均衡的目的。

    • ​​​​​​​四层负载均衡

    四层负载均衡服务器除了使用传输层(TCP\UDP协议)的端口信息外,也会结合IP层源目的IP地址进行处理。当负载均衡服务器收到客户请求时,通过修改报文中的IP和端口,将报文分流到不同的设备上,从而达到负载均衡的目的。

    • LVS
    • NAT
    • IP隧道
    • ​​​​​​​七层负载均衡

    七层负载均衡工作在OSI模型的应用层,应用层的协议类型比较多(可以参考上图),可以通过应用层协议进行分流,同时也可以根据报文中的内容(如URL、浏览器类型、语言、甚至地址位置等)进行负载均衡

    • Nginx负载均衡

    其中软件中最常用的就是Nginx负载均衡(7层)和LVS负载均衡(4层)。

    基于四层的负载均衡效率要高,一般能达到每秒几十万的处理量;而基于7层的负载均衡处理量一般在每秒几万。

    基于软件的负载均衡特点很明显:便宜呀!!!。中小公司可以直接基于开源代码做移植、适配即可,且可以部署在普通服务器上,在研发成本和硬件上大大降低了成本,从而得到了很多公司的使用。

     

    三、 负载均衡算法

    主要的均衡算法有:

    负载均衡算法可以分为两类:静态负载均衡算法动态负载均衡算法

    • 静态负载均衡算法包括:轮询、比率、优先权
    • 动态负载均衡算法包括:最少连接数、最快响应速度、观察方法、预测法、动态性能分配、动态服务器补充、服务质量、服务类型、规则模式

    • 轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第 7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。

    实现时,一般为服务器带上权重;这样有两个好处:针对服务器的性能差异可分配不同的负载;当需要将某个结点剔除时,只需要将其权重设置为0即可;

    • 优点:实现简单、高效;易水平扩展
    • 缺点:请求到目的结点的不确定,造成其无法适用于有写的场景(缓存,数据库写)
    • 应用场景:数据库或应用服务层中只有读的场景
    • 随机方式请求随机分布到各个结点;在数据足够大的场景能达到一个均衡分布;
      • 优点:实现简单、易水平扩展
      • 缺点:同 Round Robin,无法用于有写的场景
      • 应用场景:数据库负载均衡,也是只有读的场景
    • 哈希方式根据 key 来计算需要落在的结点上,可以保证一个同一个键一定落在相同的服务器上;
      • 优点:相同 key 一定落在同一个结点上,这样就可用于有写有读的缓存场景
      • 缺点:在某个结点故障后,会导致哈希键重新分布,扩展性较差。
      • 解决:一致性哈希 or 使用 keepalived 保证任何一个结点的高可用性,故障后会有其它结点顶上来
      • 应用场景:缓存,有读有写
    • 一致性哈希在服务器一个结点出现故障时,受影响的只有这个结点上的 key,最大程度的保证正确率;如 twemproxy 中的 ketama方案;生产实现中还可以规划指定子 key 哈希,从而保证局部相似特征的键能分布在同一个服务器上;
    • 根据键的范围来负载根据键的范围来负载,前 1 亿个键都存放到第一个服务器,1~2 亿在第二个结点。
      • 优点:水平扩展容易,存储不够用时,加服务器存放后续新增数据
      • 缺点:负载不均;数据库的分布不均衡;
      • (数据有冷热区分,一般最近注册的用户更加活跃,这样造成后续的服务器非常繁忙,而前期的结点空闲很多)
      • 适用场景:数据库分片负载均衡
    • 根据键对服务器结点数取模来负载根据键对服务器结点数取模来负载;比如有 4 台服务器,key 取模为 0 的落在第一个结点,1 落在第二个结点上。
      • 优点:数据冷热分布均衡,数据库结点负载均衡分布;
      • 缺点:水平扩展较难;
      • 适用场景:数据库分片负载均衡
    • 纯动态结点负载均衡根据 CPU、IO、网络的处理能力来决策接下来的请求如何调度。
      • 优点:充分利用服务器的资源,保证个结点上负载处理均衡
      • 缺点:实现起来复杂,真实使用较少
    • 比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第 2 到第 7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
    • 优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG-IP 用户的请求,分配给优先级高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当高优先级中所有服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。
    • 最少的连接方式(Least Connection)传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第 2 到第 7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
    • 最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
    展开全文
  • 负载均衡的几种方式和优缺点对比 总结 负载均衡定义 可以将高并发的用户请求分发到多台应用服务器组成的一个服务器集群上,利用更多的服务器资源处理高并发下的计算压力。 负载均衡的几种方式和优缺点对比 负载...

    目录

     

    负载均衡定义

    负载均衡的几种方式和优缺点对比

    总结


    负载均衡定义

    可以将高并发的用户请求分发到多台应用服务器组成的一个服务器集群上,利用更多的服务器资源处理高并发下的计算压力。

    负载均衡的几种方式和优缺点对比

    负载均衡
    负载均衡方法说明图示优点缺点
    HTTP 重定向HTTP 请求到达负载均衡服务器以后,负载均衡服务器根据负载均衡算法计算得到一个应用服务器的地址,通过 HTTP 状态码 302 重定向响应,将新的 IP 地址发送给用户浏览器,用户浏览器收到重定向响应以后,重新发送请求到真正的应用服务器。实现简单,HTTP方法里几行代码即可实现

    1、性能:用户每次访问需要请求两次;

    2、安全:暴露真实服务器地址;

    DNS在 DNS 域名解析的时候,不同的用户,返回不同的 IP 地址;常用于首次负载均衡;实现简单,域名服务商后台配置一下即可

    1、DNS域名解析缓存,避免一定的性能问题;

    2、搭配数据中心的负载均衡服务器两次负载均衡,避免暴露真实服务IP;

    反向代理应用层负载均衡:Nginx这样的HTTP服务器提供的反向代理功能可以将外网请求解析到不同的内网服务器上;常用于二十台以下的小规模互联网应用;实现简单,Nginx配置文件配置一下即可性能:HTTP是应用层协议,相对于下面两种方案效率较低
    IP网络层负载均衡:当用户的请求到达负载均衡服务器以后,负载均衡服务器会对网络层的数据包的 IP 地址进行转换,修改 IP 地址,将其修改为应用服务器的 IP 地址,然后把数据包重新发送出去,请求数据就会到达应用服务器。操作系统内核直接修改 IP 数据包的地址,效率比应用层的反向代理负载均衡高得多。瓶颈:不管是什么数据包,都要通过负载均衡服务器进行 IP 地址转换,才能够正确地把请求数据分发到应用服务器,或者正确地将响应数据包发送到用户端程序。负载均衡服务器会成为响应数据的流量瓶颈。
    数据链路层数据链路层负载均衡:负载均衡服务器并不修改数据包的 IP 地址,而是修改数据链路层里的网卡 mac 地址,在数据链路层实现负载均衡。而应用服务器和负载均衡服务器都使用相同的虚拟 IP 地址,这样 IP 路由就不会受到影响,但是网卡会根据自己的 mac 地址,选择负载均衡服务器发送到自己网卡的数据包,交给对应的应用程序去处理,处理结束以后,当把响应的数据包发送到网络上的时候,因为 IP 地址没有修改过,所以这个响应会直接到达用户的浏览器,而不会再经过负载均衡服务器。性能高:避免响应数据再经过负载均衡服务器,因而可以承受较大的数据传输压力,所以,目前大型互联网应用基本都使用链路层负载均衡。实现较为苛刻:必须使用 自带 LVS 的Linux服务器,才能使用 IP 负载均衡和链路层负载均衡的技术。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    总结

     

    负载均衡技术到了今天,随着互联网技术的发展与普及,已经是最常用的分布式技术之一了,使用非常简单。使用云计算平台,只需要在控制台点击几下,就可以配置实现一个负载均衡了。即使是自己在代码中控制负载均衡,也不复杂。

     

     

    展开全文
  • 一.集群是什么? 1.集群(cluster)技术是一种较新的技术,通过集群技术,可以在...负载均衡集群技术 1.负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计

    一.集群是什么?
    1.集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
    2.集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。
    二.负载均衡集群技术
    1.负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
    2.负载通常包括应用程序处理负载和网络流量负载,每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。
    三.负载均衡集群技术的产品
    1.负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术

    2.负载均衡实现方式:硬件负载均衡设备或者软件负载均衡

    3.硬件负载均衡产品:F5 、深信服 、Radware

    4.软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
    四.效果展示图
    在这里插入图片描述五.负载均衡分类
    负载均衡根据所采用的设备对象(软/硬件负载均衡),应用的OSI网络层次(网络层次上的负载均衡),及应用的地理结构(本地/全局负载均衡)等来分类。下面着重介绍的是根据应用的 OSI 网络层次来分类的负载均衡类型。
    分类
    二层负载均衡(mac)

    一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。

    三层负载均衡(ip)

    一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。

    四层负载均衡(tcp)

    在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。

    七层负载均衡(http)

    根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。

    在实际应用中,比较常见的就是四层负载及七层负载。这里也重点说下这两种负载。
    六.四层负载均衡(基于IP+端口的负载均衡)

    所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
    layer4
    1. 在三层负载均衡的基础上,通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。
    2. 以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。
    3. 对应的负载均衡器要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。
    
    4. 实现四层负载均衡的有:
    
    - F5:硬件负载均衡器,功能很好,但是成本很高。
    - lvs:重量级的四层负载均衡软件
    - haproxy:模拟四层转发,较灵活
    

    七.七层的负载均衡(基于虚拟的URL或主机IP的负载均衡)

    所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
    
    layer7
    
    1. 在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据IP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
    2. 负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个**代理服务器**。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。
    3. 对应的负载均衡器除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI等信息,实现七层负载均衡。此种负载均衡器能理解应用协议。
    4. 实现七层负载均衡的软件有:
       - haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
       - nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
       - apache:功能较差
       - Mysql proxy:功能尚可。
    

    八.四层负载与七层负载的区别

    |          | 四层负载均衡  | 七层负载均衡                               |
    +----------+-------------------------+----------------------------------------------+
    | 基于      | 基于IP+Port | 基于URL或主机IP等。                      |
    +----------+-------------------------+----------------------------------------------+
    | 类似于    | 路由器        | 代理服务器                                     |
    +----------+-------------------------+----------------------------------------------+
    | 复杂度    |||
    +----------+-------------------------+----------------------------------------------+
    | 性能     | 高;无需解析内容 | 中;需要算法识别 URL和 HTTP head 等信息 |
    +----------+-------------------------+----------------------------------------------+
    | 安全性   | 低,            | 高,                                        |
    +----------+-------------------------+----------------------------------------------+
    | 额外功能  || 会话保持,图片压缩,等                     |
    

    总结:从上面的对比看来四层负载与七层负载最大的区别就是效率与功能的区别。四层负载架构设计比较简单,无需解析具体的消息内容,在网络吞吐量及处理能力上会相对比较高,而七层负载均衡的优势则体现在功能多,控制灵活强大。在具体业务架构设计时,使用七层负载或者四层负载还得根据具体的情况综合考虑。

    展开全文
  • 抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生; 2.稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived) 3.应用范围比较广,可以对所有应用做负载均衡; 4.不支持正则...
  • 负载均衡技术通过设置虚拟服务器Ip,将后端多台真实服务器的应用资源虚拟成一台高性能的应用服务器,通过负载均衡算法,将用户的请求转发给后台网络服务器,内网服务器将请求的响应返回给负载均衡器,负载均衡器再将...
  • 从整体上来看,这是一本比较好的负载均衡入门书籍,内容也较新(已出版的几本相关英文 著作都较早) 。鉴于国内尚未有同类译著上市,我们希望本书的出版能满足入门人员的需要。翻 译过程中,我们针对其中涉及的概念...
  • 最早的负载均衡技术,利用域名解析实现负载均衡,在DNS服务器,配置多个A记录,这些A记录对应的服务器构成集群。大型网站总是部分使用DNS解析,作为第一级负载均衡。如下图:     优点   ...
  • 本文以该保险一体化项目为例,主要讨论了负载均衡技术在Web系统中的具体应用。在网络请求到服务器的过程中,我们先使用了F5负载,利用F5负载均衡技术降低了服务器的压力。经过F5负载之后,我们又接入了SLB负载均衡,...
  • 关于“负载均衡”的解释,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络...
  • 煤炭企业对网络平台的性能和可靠性要求非常高,满足要求冗余和负载均衡技术在园区网建设当中被广泛应用,由于技术的分割性和多样化使得在设计的时候很难形成一个比较完整的体系,因此文章主要研究园区网建设中用到的...
  • 论文针对当前Ribbon中线性负载均衡策略以轮询方式调取服务的局限性,结合实际应用场景,对线性负载均衡策略RoundRobinRule进行优化改进。并通过详细的测试对比,验证了对RoundRobinRule策略的优化具有实际意义,能在...
  • 参考资料 ... Maglev: A Fast and Reliable Software ...MGW——美团点评高性能四层负载均衡 - 美团技术团队 (meituan.com) Open-sourcing Katran, a scalable network load balancer - Engineering at Meta (fb.com)..
  • 负载均衡技术对比:F5与Nginx

    千次阅读 2016-12-03 09:44:52
    负载均衡技术对比:F5与Nginx 一,Nginx 1,Nginx的特性  Nginx,即engine x,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx是目前使用最广泛的HTTP软负载 均衡器。  ...
  • 负载均衡比较

    2018-08-22 09:33:02
    什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案 常见互联网...
  • lvs的优点: **1.**抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作在网络的第4层,仅作请求分发用,没有流量...**3.**工作稳定,因为lvs其本身就是专门用来做负载均衡的,所以其本身抗负载能力很强,所以
  • 提出了一种基于软件定义网络的...内网中的分布式数据库实验对通用负载均衡技术和基于软件定义网络的负载均衡技术进行了比较,在不同服务器集群的负载状态下,后者的平均响应时间小于前者,并得到了更好的负载均衡效果。
  • F5负载均衡技术的学习

    千次阅读 2018-11-03 19:10:12
    负载均衡(Load Balance) 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去...
  • 一、什么是负载均衡集群技术 负载均衡   负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡...
  • JAVA实现负载均衡

    2022-05-11 19:32:04
    负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 反向代理与负载均衡 反向代理是实现负载均衡的一种方法。 反向代理...
  • 以太网组织委员会制定的链路聚合技术(也称端口聚合),定义了如何将两条以上的以太网链路组合机器为高带宽网络连接,实现负载共享、负载平衡以及提供更好的冗余性 什么是IEEE 802.3ad协议 这项链路聚合标准在点...
  • 服务器负载均衡是将客户端请求在集群中的服务器上实现均衡分发的技术。按照位于七层网络协议栈的不同层的划分,服务器负载均衡可以分为四层(L4)负载均衡和七层(L7)负载均衡两种。 1)L4负载均衡是基于流的服务器负载...
  • 目前比较常用的负载均衡技术

    千次阅读 2017-01-12 19:53:12
    目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的 客户机将在解析这个名字时得到...
  • 一、负载均衡(Load Balance) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,其意思就是...
  • 接下来小编就为大家介绍6种实现负载均衡技术的方式: http重定向协议实现负载均衡 根据用户的http请求计算出一个真实的web服务器地址,并将该web服务器地址写入http重定向响应中返回给浏览器,由浏览器重新进行...
  • 在某些大型网络,由于多个服务器群内部硬件设备、各自的规模、提供的服务等的差异,不能采用统一的负载均衡技术,此时可以考虑给每个服务器采用最合适的负载均衡方式,而后在这多个服务器群简再一次进行负载均衡或...
  • OSPF负载均衡 2)RIP负载均衡 RIP协议目前用的比较少,不详细介绍。 RIP负载均衡与OSPF负载均衡的原理类似。采用了等价负载均衡的原理。到达后端网络的路径开销一致,就达到了负载均衡的目的。 RIP等价负载均衡 3 ...
  • 集群负载均衡技术概述

    千次阅读 2015-12-27 18:58:21
    集群负载均衡技术(Load Balancing)是目前互联网后端服务的关键技术,是互联网系统演化到现在这样巨大规模的基础。 客观地说,负载均衡是一个门槛相当不低的领域,已有技术主要包括硬件方案和软件方案。简单说,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,297
精华内容 56,518
关键字:

负载均衡技术对比