负载均衡_负载均衡配置 - CSDN
负载均衡 订阅
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 展开全文
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
信息
外文名
Load Balancing
别    称
负载分担
释    义
将负载进行平衡
中文名
负载均衡
负载均衡概述
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
收起全文
精华内容
参与话题
  • 看完这篇就全懂负载均衡

    千次阅读 2018-10-06 21:42:52
    一、什么是负载均衡? 二、四层和七层负载均衡的区别? 2.1 - 技术原理上的区别。 2.2 - 应用场景的需求。 2.3 - 七层应用需要考虑的问题。 三、负载均衡的算法? 1、随机算法 2、轮询及加权轮询 3、最小...

    目录

     

    一、什么是负载均衡?

    二、四层和七层负载均衡的区别?

    2.1 - 技术原理上的区别。

    2.2 - 应用场景的需求。

    2.3 - 七层应用需要考虑的问题。

    三、负载均衡的算法?

    1、随机算法

    2、轮询及加权轮询

    3、最小连接及加权最小连接

    4、哈希算法

    5、IP地址散列

    6、URL散列

    四、负载均衡的实现(DNS > 数据链路层 > IP层 > Http层)?

    1 - DNS域名解析负载均衡(延迟)

    2 - 数据链路层负载均衡(LVS)

    3 - IP负载均衡(SNAT)

    4 - HTTP重定向负载均衡(少见)

    5 - 反向代理负载均衡(nginx)


    一、什么是负载均衡?

    互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?

    看完这篇就全懂负载均衡了

     

    早期的方法是使用DNS做负载,通过给客户端解析不同的IP地址,让客户端的流量直接到达各个服务器。但是这种方法有一个很大的缺点就是延时性问题,在做出调度策略改变以后,由于DNS各级节点的缓存并不会及时的在客户端生效,而且DNS负载的调度策略比较简单,无法满足业务需求,因此就出现了负载均衡。

    看完这篇就全懂负载均衡了

     

    客户端的流量首先会到达负载均衡服务器,由负载均衡服务器通过一定的调度算法将流量分发到不同的应用服务器上面,同时负载均衡服务器也会对应用服务器做周期性的健康检查,当发现故障节点时便动态的将节点从应用服务器集群中剔除,以此来保证应用的高可用。

    看完这篇就全懂负载均衡了

     

    负载均衡又分为四层负载均衡和七层负载均衡。四层负载均衡工作在OSI模型的传输层,主要工作是转发,它在接收到客户端的流量以后通过修改数据包的地址信息将流量转发到应用服务器。

    七层负载均衡工作在OSI模型的应用层,因为它需要解析应用层流量,所以七层负载均衡在接到客户端的流量以后,还需要一个完整的TCP/IP协议栈。七层负载均衡会与客户端建立一条完整的连接并将应用层的请求流量解析出来,再按照调度算法选择一个应用服务器,并与应用服务器建立另外一条连接将请求发送过去,因此七层负载均衡的主要工作就是代理。

    二、四层和七层负载均衡的区别?

    2.1 - 技术原理上的区别。

    所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

    以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

    看完这篇就全懂负载均衡了

     

    所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

    以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

    负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。那么,为什么还需要七层负载均衡呢?

    2.2 - 应用场景的需求。

    七层应用负载的好处,是使得整个网络更"智能化", 参考我们之前的另外一篇专门针对HTTP应用的优化的介绍,就可以基本上了解这种方式的优势所在。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。

    当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在网络层的灵活性。很多在后台,(例如Nginx或者Apache)上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。

    另外一个常常被提到功能就是安全性。网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。

    从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。

    现在的7层负载均衡,主要还是着重于应用广泛的HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。 4层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。

    2.3 - 七层应用需要考虑的问题。

    • 是否真的必要,七层应用的确可以提高流量智能化,同时必不可免的带来设备配置复杂,负载均衡压力增高以及故障排查上的复杂性等问题。在设计系统时需要考虑四层七层同时应用的混杂情况。
    • 是否真的可以提高安全性。例如SYN Flood攻击,七层模式的确将这些流量从服务器屏蔽,但负载均衡设备本身要有强大的抗DDoS能力,否则即使服务器正常而作为中枢调度的负载均衡设备故障也会导致整个应用的崩溃。
    • 是否有足够的灵活度。七层应用的优势是可以让整个应用的流量智能化,但是负载均衡设备需要提供完善的七层功能,满足客户根据不同情况的基于应用的调度。最简单的一个考核就是能否取代后台Nginx或者Apache等服务器上的调度功能。能够提供一个七层应用开发接口的负载均衡设备,可以让客户根据需求任意设定功能,才真正有可能提供强大的灵活性和智能性。

    三、负载均衡的算法?

    1、随机算法

    • Random随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

    2、轮询及加权轮询

    • 轮询(Round Robbin)当服务器群中各服务器的处理能力相同时,且每笔业务处理量差异不大时,最适合使用这种算法。 轮循,按公约后的权重设置轮循比率。存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
    • 加权轮询(Weighted Round Robbin)为轮询中的每台服务器附加一定权重的算法。比如服务器1权重1,服务器2权重2,服务器3权重3,则顺序为1-2-2-3-3-3-1-2-2-3-3-3- ......

    3、最小连接及加权最小连接

    • 最少连接(Least Connections)在多个服务器中,与处理连接数(会话数)最少的服务器进行通信的算法。即使在每台服务器处理能力各不相同,每笔业务处理量也不相同的情况下,也能够在一定程度上降低服务器的负载。
    • 加权最少连接(Weighted Least Connection)为最少连接算法中的每台服务器附加权重的算法,该算法事先为每台服务器分配处理连接的数量,并将客户端请求转至连接数最少的服务器上。

    4、哈希算法

    • 普通哈希
    • 一致性哈希一致性Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

    5、IP地址散列

    • 通过管理发送方IP和目的地IP地址的散列,将来自同一发送方的分组(或发送至同一目的地的分组)统一转发到相同服务器的算法。当客户端有一系列业务需要处理而必须和一个服务器反复通信时,该算法能够以流(会话)为单位,保证来自相同客户端的通信能够一直在同一服务器中进行处理。

    6、URL散列

    • 通过管理客户端请求URL信息的散列,将发送至相同URL的请求转发至同一服务器的算法。

    四、负载均衡的实现(DNS > 数据链路层 > IP层 > Http层)?

    1 - DNS域名解析负载均衡(延迟)

    看完这篇就全懂负载均衡了

     

    利用DNS处理域名解析请求的同时进行负载均衡是另一种常用的方案。在DNS服务器中配置多个A记录,如:www.mysite.com IN A 114.100.80.1、www.mysite.com IN A 114.100.80.2、www.mysite.com IN A 114.100.80.3.

    每次域名解析请求都会根据负载均衡算法计算一个不同的IP地址返回,这样A记录中配置的多个服务器就构成一个集群,并可以实现负载均衡。

    DNS域名解析负载均衡的优点是将负载均衡工作交给DNS,省略掉了网络管理的麻烦,缺点就是DNS可能缓存A记录,不受网站控制。事实上,大型网站总是部分使用DNS域名解析,作为第一级负载均衡手段,然后再在内部做第二级负载均衡。

    2 - 数据链路层负载均衡(LVS)

    看完这篇就全懂负载均衡了

     

    数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。

    这种数据传输方式又称作三角传输模式,负载均衡数据分发过程中不修改IP地址,只修改目的的mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一样,从而达到负载均衡,这种负载均衡方式又称为直接路由方式(DR).

    在上图中,用户请求到达负载均衡服务器后,负载均衡服务器将请求数据的目的mac地址修改为真是WEB服务器的mac地址,并不修改数据包目标IP地址,因此数据可以正常到达目标WEB服务器,该服务器在处理完数据后可以经过网管服务器而不是负载均衡服务器直接到达用户浏览器。

    使用三角传输模式的链路层负载均衡是目前大型网站所使用的最广的一种负载均衡手段。在linux平台上最好的链路层负载均衡开源产品是LVS(linux virtual server)。

    3 - IP负载均衡(SNAT)

    看完这篇就全懂负载均衡了

     

    IP负载均衡:即在网络层通过修改请求目标地址进行负载均衡。

    用户请求数据包到达负载均衡服务器后,负载均衡服务器在操作系统内核进行获取网络数据包,根据负载均衡算法计算得到一台真实的WEB服务器地址,然后将数据包的IP地址修改为真实的WEB服务器地址,不需要通过用户进程处理。真实的WEB服务器处理完毕后,相应数据包回到负载均衡服务器,负载均衡服务器再将数据包源地址修改为自身的IP地址发送给用户浏览器。

    这里的关键在于真实WEB服务器相应数据包如何返回给负载均衡服务器,一种是负载均衡服务器在修改目的IP地址的同时修改源地址,将数据包源地址改为自身的IP,即源地址转换(SNAT),另一种方案是将负载均衡服务器同时作为真实物理服务器的网关服务器,这样所有的数据都会到达负载均衡服务器。

    IP负载均衡在内核进程完成数据分发,较反向代理均衡有更好的处理性能。但由于所有请求响应的数据包都需要经过负载均衡服务器,因此负载均衡的网卡带宽成为系统的瓶颈

    4 - HTTP重定向负载均衡(少见)

    看完这篇就全懂负载均衡了

     

    HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算一台真实的服务器地址,并将真实的服务器地址写入HTTP重定向响应中(响应状态吗302)返回给浏览器,然后浏览器再自动请求真实的服务器。

    这种负载均衡方案的优点是比较简单,缺点是浏览器需要每次请求两次服务器才能拿完成一次访问,性能较差;使用HTTP302响应码重定向,可能是搜索引擎判断为SEO作弊,降低搜索排名。重定向服务器自身的处理能力有可能成为瓶颈。因此这种方案在实际使用中并不见多。

    5 - 反向代理负载均衡(nginx)

    看完这篇就全懂负载均衡了

     

    传统代理服务器位于浏览器一端,代理浏览器将HTTP请求发送到互联网上。而反向代理服务器则位于网站机房一侧,代理网站web服务器接收http请求。

    反向代理的作用是保护网站安全,所有互联网的请求都必须经过代理服务器,相当于在web服务器和可能的网络攻击之间建立了一个屏障。

    除此之外,代理服务器也可以配置缓存加速web请求。当用户第一次访问静态内容的时候,静态内存就被缓存在反向代理服务器上,这样当其他用户访问该静态内容时,就可以直接从反向代理服务器返回,加速web请求响应速度,减轻web服务器负载压力。

    另外,反向代理服务器也可以实现负载均衡的功能。

    看完这篇就全懂负载均衡了

     

    由于反向代理服务器转发请求在HTTP协议层面,因此也叫应用层负载均衡。优点是部署简单,缺点是可能成为系统的瓶颈。

    展开全文
  • 负载均衡

    千次阅读 2016-12-26 12:01:00
    对全栈而言,解决这类问题的一个重要技能就是——负载均衡。 什么是负载均衡 负载(load)一词起源于典型系统,指连接在电路中消耗电能的装置,负载(用电器)的功能是把电能转变为其他形式能。引申出来,一个是...

    一个了不起的创意会产生一个很棒的产品,如果它一炮走红,你发现手中的是下一个facebook 或者twitter,而且随着用户越来越多,会变得越来越慢,该怎么办呢?对全栈而言,解决这类问题的一个重要技能就是——负载均衡。

    什么是负载均衡

    负载(load)一词起源于典型系统,指连接在电路中消耗电能的装置,负载(用电器)的功能是把电能转变为其他形式能。引申出来,一个是实体,一个转化。

    于是,对于实体,有了通信帧或者报文中数据字段的内容被称为信息负载(payload),网络负载指的就是网络中继承载的流量以及网络设备承载的用户量。

    转化被进一步阐释为资源的使用情况,系统平均负载是CPU的Load 即workload,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息。

    了解了负载,那么负载均衡就容易理解了。wiki百科给出的定义是这样的:

    负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。

    并且,wiki百科自身的系统就使用了负载均衡。

    wikipedia

    每一种技术都有它应用的场景和领域,负载均衡主要解决的是系统性能问题。但是,了解了根源,就可以知道不能够一提到性能问题就非负载均衡莫属,如果负载减少了,可能少一点均衡也可以解决问题,这样的技术例如缓存。

    基于DNS的负载均衡

    基于DNS的负载均衡是负载均衡的最简方法,可以说是穷人的负载均衡。

    DNS会将域名映射为IP地址,反之亦然。所有核心DNS服务器都是集群,用的最多的DNS服务器大概就是BIND了。查询DNS服务器时,推荐使用dig;查询DNS解析时,推荐使用nslookup。 使用DNS缓存可以提高DNS解析的性能。Dig 在mac上的使用示例如下:
    dig 用法

    对于DNS实现的负载均衡非常简单,采用轮转的方式,只要为所要服务的域名增加多个A记录即可。
    例如:

    基于DNS的负载均衡简单,易于调试且容易扩展。缺陷在于它有慢性失忆症,无法将会话信息从一个请求保留到下一个请求。而且,只是对目标服务地址进行了均衡,无法考虑请求处理的负载强度进行均衡,同时容错性较差。

    支持DNS 负载均衡的服务商有AWS Route 53 以及dnspod。

    HTTP 负载均衡

    负载均衡解决的是性能问题,要先了解单个服务器的状况。一般地,nginx 的应答率比Apache 高,所以,有时更换Web 服务器就可以提高性能。

    提高Apache Http的方法有禁用空载模块,禁用DNS查询,采用压缩模块,不使用SymLinksIfOwnerMatch选项,并且在Directory选项中启用FollowSymLinks,等等。

    Nginx本身就是高性能的,但可以通过worker_processes 和worker_cpu_affinity调整来匹配服务器的硬件平台,还可以对压缩进行区分对待,使用其缓存的能力。例如

    HTTP的负载均衡相当于7层负载均衡,不论Apache 还是 Nginx 都可以充当HTTP的负载均衡器。

    以基于权重的负载均衡为例,可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。配置的示例如下:

    Nginx 作为负载均衡工作在7层,可以对做正则规则处理(如针对域名、目录进行分流等) ,配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测。Nginx 负载均衡抗高并发,采用epoll网络模型处理客户请求,但应用范围受限。

    数据库负载均衡

    数据库负载均衡的一般用法从读写分离开始的,因为一般的应用都是读多写少的缘故吧。将数据库做成主从,主数据用于写操作,从数据库用于读操作,事务一般在主库完成。

    数据库集群是数据库负载均衡的典型方式,集群管理服务器作为负载均衡器,例如mysql cluster。

    更简单的方式是通过Haproxy 来完成负载均衡的调度。

    Haproxy 均衡数据库

    HAProxy能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作,支持url检测后端的服务器出问题的检测会有很好的帮助。

    HAProxy拥有更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)等,单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。

    网络连接的负载均衡

    LVS(IPVS,IP虚拟服务器)是在四层交换上设置Web服务的虚拟IP地址,对客户端是可见的。当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。

    LVS抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生。 LVS的稳定性和可靠性都很好应用范围比较广,可以对所有应用做负载均衡,缺陷是不支持正则处理,不能做动静分离。

    通过LVS+Keepalived构建的LVS集群,LVS负载均衡用户请求到后端服务器,Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

    下图是Keepalived的原理图:
    KeepLived 的原理图

    SSL负载均衡

    信任是互联网的基石,出于安全性的考量,服务中往往需要SSL的连接。SSL 有两种认证方式:双向认证 SSL 协议要求服务器和用户双方都有证书;单向认证 SSL 协议不需要客户拥有CA证书。一般Web应用,配置SSL单向认证即可。但部分金融行业用户的应用对接,可能会要求对客户端(相对而言)做身份验证。这时就需要做SSL双向认证。

    SSL 属于应用层的协议,所以只能在 7 层上来做,而 HAProxy 也是支持 SSL 协议的,所以一种方式是只需简单的让 HAProxy 开启 SSL 支持完成对内解密对外加密的处理, 但引入 SSL 处理是有额外的性能开销的(如上面谈到的认证), 所以 一般采用SSL proxy farm, 典型的架构如下:

    SSL 负载均衡

    压力和负载测试

    测试负载的状况,一般要涉及负载或压力测试。

    负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断增加负载载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源等,以检验系统的行为和特性,并发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。

    负载测试更多地体现了一种方法或一种技术。压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

    压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。

    简单地,httperf 或者Apache AB 就可以测量HTTP 服务器的负载性能。

    云服务的负载均衡

    云时代的到来,使负载均衡成了平台级的服务,几乎所有的云服务提供商都提供了负载均衡服务。下面是阿里云的负载均衡基础框架图:

    阿里云的slb

    特别的,qingcloud 的vpc 也是挺有特点的,私有网络 用于主机之间互联,类似于使用交换机(L2 Switch)自组局域网。弹性IP还好,管理路由器就显得很贴心了。

    AWS 的负载均衡还是业界典范,官方给出的示意图如下:
    AWS ELB

    高可用性

    高可用性是负载均衡带来的另一价值, 即负载均衡经常被用于实现故障转移。当一个或多个组件出现故障时,能持续提供服务的这些组件都在持续监控中,当一个组件没有响应,负载均衡器就会发现它,并不再向其发送数据。同样当一个组件重新上线,负载均衡器会重新开始向其发送数据。

    SLA 作为高可用性的指标,一般有3个时间标准:99.9%,99.99%,99.999%. 表示不间断运行的离线时间不超过:

    • 3个9: 8.76 小时
    • 4个9:52.26 小时
    • 5个9:5.26 分钟

    三点两地的灾备方案并不是谁都做的起的,有了云服务就显得不那么苦难了。下面是阿里云给出的容灾示意图,多可用区部署,机房宕机后,仍能正常工作。
    阿里云的容灾示意图

    系统的监控在系统高可用性上作用很大,个人推荐zabbix。

    总体来看, 负载均衡是系统架构和DevOps 中的重要技术,对系统性能影响巨大。当然,如果有更高需求的话,就需要考虑硬件的负载均衡方案了,比如说F5。

    展开全文
  • 实现负载均衡的几种方式

    万次阅读 2018-07-21 09:56:13
    负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术...

    负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。

     

    什么是web负载均衡

     

    服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:

    • 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
    • 高可用集群:提高冗余单元,避免单点故障
    • 负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。

    一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展(Scale Out),避免纵向的升级(Scale Up)换代。

    本文中的web负载均衡,特指能够分担web请求(http,https等)的负载均衡技术。

     

    基本原理

     

    任何的负载均衡技术都要想办法建立某种一对多的映射机制:一个请求的入口映射到多个处理请求的节点,从而实现分而治之(Divide and Conquer)。

    这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。

    采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:

    • DNS轮询
    • CDN
    • IP负载均衡

     

    DNS

     

    DNS轮询是最简单的负载均衡方式。以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。

    DNS轮询没有快速的健康检查机制,而且只支持WRR的调度策略导致负载很难“均衡”,通常用于要求不高的场景。并且DNS轮询方式直接将服务器的真实地址暴露给用户,不利于服务器安全。

    CDN

    CDN(Content Delivery Network,内容分发网络)。通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到里用户最近的缓存节点作为服务提供节点。

    因为很难自建大量的缓存节点,所以通常使用CDN运营商的服务。目前国内的服务商很少,而且按流量计费,价格也比较昂贵。

     

    IP负载均衡

     

    IP负载均衡是基于特定的TCP/IP技术实现的负载均衡。比如NAT、DR、Turning等。是最经常使用的方式。关于其原理,可以参考下面另一篇文章:lvs中的负载均衡方式

    IP负载均衡可以使用硬件设备,也可以使用软件实现。硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),软件产品主要有LVS、HAProxy、NginX。其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。关于三者的简单对比,可以参考这里

    硬件负载均衡设备可以将核心部分做成芯片,性能和稳定性更好,而且商用产品的可管理性、文档和服务都比较好。唯一的问题就是价格。

    软件负载均衡通常是开源软件。自由度较高,但学习成本和管理成本会比较大。

     

    F5

     

    F5的全称是F5-BIG-IP-GTM,是最流行的硬件负载均衡设备,其并发能力达到百万级。F5的主要特性包括:

    1. 多链路的负载均衡和冗余

      可以接入多条ISP链路,在链路之间实现负载均衡和高可用。

    2. 防火墙负载均衡

      F5具有异构防火墙的负载均衡与故障自动排除能力。

    3. 服务器负载均衡

      这是F5最主要的功能,F5可以配置针对所有的对外提供服务的服务器配置Virtual Server实现负载均衡、健康检查、回话保持等。

    4. 高可用

      F5设备自身的冗余设计能够保证99.999%的正常运行时间,双机F5的故障切换时间为毫秒级。

      使用F5可以配置整个集群的链路冗余和服务器冗余,提高可靠的健康检查机制,以保证高可用。

    5. 安全性

      与防火墙类似,F5采用缺省拒绝策略,可以为任何站点增加额外的安全保护,防御普通网络攻击,包括DDoS、IP欺骗、SYN攻击、teartop和land攻击、ICMP攻击等。

    6. 易于管理

      F5提供HTTPS、SSH、Telnet、SNMP等多种管理方式,包含详尽的实时报告和历史纪录报告。同时还提供二次开发包(i-Control)。

    7. 其他

      F5还提供了SSL加速、软件升级、IP地址过滤、带宽控制等辅助功能。

     

    LVS

     

    LVS(Linux Virtual Server, linux虚拟服务器),是章文嵩博士开发的开放软件,目前已经集成到Linux内核中。

    基于不同的网络技术,LVS支持多种负载均衡机制。包括:VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)。

    此外,为了适应不同的需要,淘宝开发了VS/FULLNAT,从本质上来说也是基于网络地址转换技术。最近还有一个基于VS/FULLNAT的DNAT模块。

    不管使用哪种机制,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。不同的机制,决定了响应包如何返回到客户端。

     

    VS/NAT

     

    NAT(Network Address Translation,网络地址转换)也叫做网络掩蔽或者IP掩蔽,是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。

    NAT能够将私有(保留)地址转化为合法IP地址,通常用于一个公共IP地址和多个内部私有IP地址直接的映射,广泛应用于各种类型Internet接入方式和各种类型的网络中。

    通过使用NAT将目的地址转换到多个服务器的方式,可以实现负载均衡,同时能够隐藏并保护内部服务器,避免来自网络外部的攻击。商用负载均衡设备如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector都是基于NAT方法。

    VS/NAT(Virtual Server via Network Address Translation)是基于NAT技术实现负载均衡的方法。其架构如下图所示:

     

    1. 客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器
    2. 调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。

    3. 真实的服务器处理请求,并将响应报文发到调度器。

    4. 调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口
    5. 调度器将修改过的报文发给用户

     

    在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。比如IP隧道技术。

     

    VS/TUN

     

    IP Tunneling(IP隧道)技术,又称为IP封装技术(IP encapsulation),是一种在网络之间传递数据的方式。可以将一个IP报文封装到另一个IP报文(可能是不同的协议)中,并转发到另一个IP地址。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

    VS/TUN(Virtual Server via IP Tunneling)是基于隧道技术实现负载均衡的方法。其架构如下图所示:

    VS/TUN与VS/NAT的工作机制大体上相同,区别在于:

    1. 调度器转发报文的时候进行了协议的二次封装,真实的服务器接收到请求后先进行解包。过程如下图所示:

    2. 响应报文从后端服务器直接返回给客户,不需要经过调度器。

     

     

    VS/DR

     

    DR(Direct Routing, 直接路由), 路由器学习路由的方法之一。路由器对于自己的网络接口所直连的网络之间的通信,可以自动维护路由表,而且不需要进行路由计算。

    直接路由通常用在一个三层交换机连接几个VLAN的情况,只要设置直接路由VLAN之间就可以通信,不需要设置其他的路由方式。

    VS/DR(Virtual Server via Direct Routing)是基于直接路由实现负载均衡的方法。其架构如下图所示:

     

    跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。

    VS/DR要求调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

    VS/DR的整个过程与VS/TUN非常类似,不同之处在于调度器不对请求包进行二次封装,只是将目标MAC地址更改为经过调度算法选出的目标服务器的MAC地址。如下图:

     

     

    三种方法的优缺点比较

     

    VS/NAT

    • 优点

      • 对后端服务器的操作系统无要求
      • 只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。
      • 支持端口映射
    • 缺点

      • 请求和响应报文都需要通过调度器,伸缩能力有限(10+)
      • 要求服务器和调度器在同一个VLAN
      • 需要将服务器的默认网关指向调度器
      • 对于那些将IP地址或者端口号在报文数据中传送的网络服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号

    VS/TUN

    • 优点

      • 不需要调度应答报文,性能高
      • 服务器和调度器可以不在同一个VLAN
      • 支持广域负载均衡
    • 缺点

      • 所有的服务器必须支持“IP Tunneling”协议,要安装内核模块(比如IPIP等),配置复杂
      • 有建立IP隧道的开销
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 服务器需要联通外网
      • 不支持端口映射

    VS/DR

    • 优点

      • 与VS/TUN相比,没有IP隧道的开销,性能最好
    • 缺点

      • 要求调度器与服务器都有一块网卡连在同一物理网段(同一个VLAN)上
      • 要求服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 不支持端口映射

     

    VS/FULLNAT

     

    如上节所述,前面三种传统的负载均衡机制各自存在一些不足。

    VS/FULLNAT是为了解决这些不足而新开发的一种转发模式。VS/FULLNAT的特点是:

    1. 调度器和服务器可以跨VLAN通信,不需要配置在同一个网段
    2. 请求和应答报文都经过调度器,服务器不需要绑定虚拟IP

    VS/FULLNAT这两个特点可以简化网络拓扑,降低运维成本和风险。

     

    如何选择

     

      1. 如果人少钱多,不在乎性能的损耗愿意多买服务器,同时希望最大程度较少运维的工作量,可以选择FULLNAT
      2. 很大众的方式是用DR,没有太多的优点但也没有太多的缺点
      3. 如果要搞广域网负载均衡,那就用TUN吧
      4. 个人感觉NAT不是为了互联网用的。小并发的实验性应用或者用在非web场合,比如mysql集群等。当然,如果需要端口映射,必须使用NAT方式
      5.  
    展开全文
  • 高并发解决方案之一 ——负载均衡

    万次阅读 多人点赞 2018-04-15 21:52:15
    1.什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台...

    1.什么是负载均衡?

            当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。

    那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。

    下面详细介绍负载均衡的四种实现方式。 

    (一)HTTP重定向实现负载均衡

    过程描述

            当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,并将选中的服务器的IP地址封装在HTTP响应消息头部的Location字段中,并将响应消息的状态码设为302,最后将这个响应消息返回给浏览器。

    当浏览器收到响应消息后,解析Location字段,并向该URL发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。

    在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。 

    调度策略

        调度服务器收到用户的请求后,究竟选择哪台后端服务器处理请求,这由调度服务器所使用的调度策略决定。

    1. 随机分配策略 
      当调度服务器收到用户请求后,可以随机决定使用哪台后端服务器,然后将该服务器的IP封装在HTTP响应消息的Location属性中,返回给浏览器即可。

    2. 轮询策略(RR) 
      调度服务器需要维护一个值,用于记录上次分配的后端服务器的IP。那么当新的请求到来时,调度者将请求依次分配给下一台服务器。

    由于轮询策略需要调度者维护一个值用于记录上次分配的服务器IP,因此需要额外的开销;此外,由于这个值属于互斥资源,那么当多个请求同时到来时,为了避免线程的安全问题,因此需要锁定互斥资源,从而降低了性能。而随机分配策略不需要维护额外的值,也就不存在线程安全问题,因此性能比轮询要高。 

    优缺点分析

       采用HTTP重定向来实现服务器集群的负载均衡实现起来较为容易,逻辑比较简单,但缺点也较为明显。

    在HTTP重定向方法中,调度服务器只在客户端第一次向网站发起请求的时候起作用。当调度服务器向浏览器返回响应信息后,客户端此后的操作都基于新的URL进行的(也就是后端服务器),此后浏览器就不会与调度服务器产生关系,进而会产生如下几个问题:

    • 由于不同用户的访问时间、访问页面深度有所不同,从而每个用户对各自的后端服务器所造成的压力也不同。而调度服务器在调度时,无法知道当前用户将会对服务器造成多大的压力,因此这种方式无法实现真正意义上的负载均衡,只不过是把请求次数平均分配给每台服务器罢了。
    • 若分配给该用户的后端服务器出现故障,并且如果页面被浏览器缓存,那么当用户再次访问网站时,请求都会发给出现故障的服务器,从而导致访问失败。

    (二)DNS负载均衡

    DNS是什么?

    在了解DNS负载均衡之前,我们首先需要了解DNS域名解析的过程。

    我们知道,数据包采用IP地址在网络中传播,而为了方便用户记忆,我们使用域名来访问网站。那么,我们通过域名访问网站之前,首先需要将域名解析成IP地址,这个工作是由DNS完成的。也就是域名服务器。

    我们提交的请求不会直接发送给想要访问的网站,而是首先发给域名服务器,它会帮我们把域名解析成IP地址并返回给我们。我们收到IP之后才会向该IP发起请求。

    那么,DNS服务器有一个天然的优势,如果一个域名指向了多个IP地址,那么每次进行域名解析时,DNS只要选一个IP返回给用户,就能够实现服务器集群的负载均衡。 

    具体做法

    首先需要将我们的域名指向多个后端服务器(将一个域名解析到多个IP上),再设置一下调度策略,那么我们的准备工作就完成了,接下来的负载均衡就完全由DNS服务器来实现。

    当用户向我们的域名发起请求时,DNS服务器会自动地根据我们事先设定好的调度策略选一个合适的IP返回给用户,用户再向该IP发起请求。 

    调度策略

    一般DNS提供商会提供一些调度策略供我们选择,如随机分配、轮询、根据请求者的地域分配离他最近的服务器。 

    优缺点分析

           DNS负载均衡最大的优点就是配置简单。服务器集群的调度工作完全由DNS服务器承担,那么我们就可以把精力放在后端服务器上,保证他们的稳定性与吞吐量。而且完全不用担心DNS服务器的性能,即便是使用了轮询策略,它的吞吐率依然卓越。

    此外,DNS负载均衡具有较强了扩展性,你完全可以为一个域名解析较多的IP,而且不用担心性能问题。

    但是,由于把集群调度权交给了DNS服务器,从而我们没办法随心所欲地控制调度者,没办法定制调度策略。

    DNS服务器也没办法了解每台服务器的负载情况,因此没办法实现真正意义上的负载均衡。它和HTTP重定向一样,只不过把所有请求平均分配给后端服务器罢了。

    此外,当我们发现某一台后端服务器发生故障时,即使我们立即将该服务器从域名解析中去除,但由于DNS服务器会有缓存,该IP仍然会在DNS中保留一段时间,那么就会导致一部分用户无法正常访问网站。这是一个致命的问题!好在这个问题可以用动态DNS来解决。 

    动态DNS

    动态DNS能够让我们通过程序动态修改DNS服务器中的域名解析。从而当我们的监控程序发现某台服务器挂了之后,能立即通知DNS将其删掉。

    综上所述

    DNS负载均衡是一种粗犷的负载均衡方法,这里只做介绍,不推荐使用。 



    (三)反向代理负载均衡

    什么是反向代理负载均衡?

           反向代理服务器是一个位于实际服务器之前的服务器,所有向我们网站发来的请求都首先要经过反向代理服务器,服务器根据用户的请求要么直接将结果返回给用户,要么将请求交给后端服务器处理,再返回给用户。

    之前我们介绍了用反向代理服务器实现静态页面和常用的动态页面的缓存。接下来我们介绍反向代理服务器更常用的功能——实现负载均衡。

    我们知道,所有发送给我们网站的请求都首先经过反向代理服务器。那么,反向代理服务器就可以充当服务器集群的调度者,它可以根据当前后端服务器的负载情况,将请求转发给一台合适的服务器,并将处理结果返回给用户。 

    优点

    1. 隐藏后端服务器。 
      与HTTP重定向相比,反向代理能够隐藏后端服务器,所有浏览器都不会与后端服务器直接交互,从而能够确保调度者的控制权,提升集群的整体性能。
    2. 故障转移 
      与DNS负载均衡相比,反向代理能够更快速地移除故障结点。当监控程序发现某一后端服务器出现故障时,能够及时通知反向代理服务器,并立即将其删除。
    3. 合理分配任务 
      HTTP重定向和DNS负载均衡都无法实现真正意义上的负载均衡,也就是调度服务器无法根据后端服务器的实际负载情况分配任务。但反向代理服务器支持手动设定每台后端服务器的权重。我们可以根据服务器的配置设置不同的权重,权重的不同会导致被调度者选中的概率的不同。 

    缺点

    1. 调度者压力过大 
      由于所有的请求都先由反向代理服务器处理,那么当请求量超过调度服务器的最大负载时,调度服务器的吞吐率降低会直接降低集群的整体性能。
    2. 制约扩展 
      当后端服务器也无法满足巨大的吞吐量时,就需要增加后端服务器的数量,可没办法无限量地增加,因为会受到调度服务器的最大吞吐量的制约。 

    粘滞会话

    反向代理服务器会引起一个问题。若某台后端服务器处理了用户的请求,并保存了该用户的session或存储了缓存,那么当该用户再次发送请求时,无法保证该请求仍然由保存了其Session或缓存的服务器处理,若由其他服务器处理,先前的Session或缓存就找不到了。

    解决办法1: 
    可以修改反向代理服务器的任务分配策略,以用户IP作为标识较为合适。相同的用户IP会交由同一台后端服务器处理,从而就避免了粘滞会话的问题。

    解决办法2: 
    可以在Cookie中标注请求的服务器ID,当再次提交请求时,调度者将该请求分配给Cookie中标注的服务器处理即可。


    2.负载均衡组件

    1.1、apache
         —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安全Socket层(SSL)等等,目前互联网主要使用它做静态资源服务器,也可以做代理服务器转发请求(如:图片链等),结合tomcat等servlet容器处理jsp。
    1.2、ngnix
         —— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器。由于Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道等,在3w以上的高并发环境下,ngnix处理能力相当于apache的10倍。
         参考:apache和tomcat的性能分析和对比(http://blog.s135.com/nginx_php_v6/)
    1.3、lvs
         —— Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡。了解更多,访问官网:http://zh.linuxvirtualserver.org/。

    1.4、HAProxy

         —— HAProxy提供高可用性负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上.
    1.5、keepalived
         —— 这里说的keepalived不是apache或者tomcat等某个组件上的属性字段,它也是一个组件,可以实现web服务器的高可用(HA high availably)。它可以检测web服务器的工作状态,如果该服务器出现故障被检测到,将其剔除服务器群中,直至正常工作后,keepalive会自动检测到并加入到服务器群里面。实现主备服务器发生故障时ip瞬时无缝交接。它是LVS集群节点健康检测的一个用户空间守护进程,也是LVS的引导故障转移模块(director failover)。Keepalived守护进程可以检查LVS池的状态。如果LVS服务器池当中的某一个服务器宕机了。keepalived会通过一 个setsockopt呼叫通知内核将这个节点从LVS拓扑图中移除。
    1.6、memcached
         —— 它是一个高性能分布式内存对象缓存系统。当初是Danga Interactive为了LiveJournal快速发展开发的系统,用于对业务查询数据缓存,减轻数据库的负载。其守护进程(daemon)是用C写的,但是客户端支持几乎所有语言(客户端基本上有3种版本[memcache client for java;spymemcached;xMecache]),服务端和客户端通过简单的协议通信;在memcached里面缓存的数据必须序列化。
    1.7、terracotta
         —— 是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,允许用户在不改变系统代码的情况下实现java应用的集群。支持数据的持久化、session的复制以及高可用(HA)。

    展开全文
  • 一篇文章彻底了解清楚什么是负载均衡

    万次阅读 多人点赞 2018-09-23 11:14:34
    转载自 一篇文章彻底了解清楚什么是负载均衡 负载均衡是高可用网络基础架构的的一个关键组成部分,有了负载均衡,我们通常可以将我们的应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来...
  • 负载均衡原理与技术实现

    万次阅读 2018-07-20 17:59:33
    负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:...
  • 集群、分布式、负载均衡区别

    千次阅读 2018-06-28 16:21:05
    集群集群的概念 计算机集群通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。... 比如单个重负载的运算分担到多台节点设备...
  • 概述在分布式系统中,负载均衡(Load Balancing)是一种将任务分派到多个服务端进程的方法。例如,将一个HTTP请求派发到实际的Web服务器中执行的过程就涉及负载均衡的实现。一个HTTP请求到达Web服务器,这中间涉及多...
  • 分布式系统的负载均衡 | 架构干货

    千次阅读 多人点赞 2019-07-17 16:03:14
    分布式系统的负载均衡 | 架构干货
  • 服务器端负载均衡:例如Nginx,通过Nginx进行负载均衡,先发送请求,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;客户端负载均衡:例如spring cloud中的ribbon,客户端会有一个服务器地址列表,在发送...
  • visio2013软件 负载均衡图标

    千次阅读 2014-04-28 12:03:27
    visio2013软件 负载均衡图标在 网络符号 组中
  • 每天进步一点点——负载均衡之IP

    万次阅读 多人点赞 2014-07-22 12:28:50
    2分钟快速理解如何在网络层实现集群的负载均衡以及其工作原理
  • 1. 四层负责均衡:是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立TCP连接,然后发送Client请求的数据。 由上图可知:在四层负载设备中,把...
  •  负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务端负载均衡,服务端负载均衡又分为两种,一种是硬件负载均衡,还有一种是软件负载均衡。...
  • 负载均衡的三种部署方式

    万次阅读 2014-08-20 15:11:08
    负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。...
  • 负载均衡的5种策略

    万次阅读 2018-06-08 19:35:07
    1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、指定权重指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 3、IP绑定 ip_hash每个...
  • 0.负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。  负载均衡,英文名称为Load Balance...
  • Nginx做负载均衡无法加载css,js

    万次阅读 2016-05-09 15:15:24
    nginx做负载均衡服务器无法加载css和js及图片文件,访问tomcat时也只能看到文字而看不到图片,如何解决呢?
  • f5 负载均衡初识与配置

    万次阅读 2017-03-23 13:18:49
    摘要: 在现阶段企业网中,只要部署WEB应用防火墙,一般能够遇到负载均衡设备,较常见是f5、redware的负载均衡,在负载均衡方面f5、redware的确做得很不错,但是对于我们安全厂家来说,有时候带来了一些小麻烦。...
  • Nginx 负载均衡配置+使用方法

    万次阅读 2018-09-23 18:31:03
    Nginx 负载均衡配置+使用方法 本次环境搭建是在LNMP 环境进行的,具体环境搭建详细教程请看我另一篇博客 这里写链接内容 LNMP环境搭建 首先搭建3台虚拟机,这里我的虚拟机ip分别是 192.168.0.38 192.168....
1 2 3 4 5 ... 20
收藏数 366,053
精华内容 146,421
关键字:

负载均衡