负载均衡:概述-四/七层负载

一、负载均衡概述

负载均衡(Load Balancer,简称LB)简单说是对多台服务器进行流量分发的服务,以均衡各个服务器的流量压力。大数据环境下各个企业级分布式系统随处可见负载均衡的身影。淘宝,腾讯,新浪无一例外。

传统轻量级单点服务器容易因为短时巨流压力产生故障而造成大面积的瘫痪。负载均衡通过流量分发分散单个服务器的压力提高系统对外的服务能力,同时单点故障则会自动切换到其他服务器提升应用系统容错容障能力。

如下是一下简单的Web服务器负载均衡图,多台服务器在负载均衡服务器的组织下形成一个应用服务器池,所有的请求首先全部到达Load balancer,再由它转发到具体的Web服务器,LB在这里充当的就是流量入口以及分发压力到池中服务器。

1、扩展性上假设单个服务器的最大可承载量是1000,那N台服务器通过LB的组织理论可以承载N*1000的量。

2、单点产生故障,负载均衡讲流量分发给其他服务器承担而不影响用户访问,同时如果单个服务器压力过大,通过调节各个服务器权重可以把流量分发给负担轻的服务器承接,减少故障产生,同时增加用户体验。

 

二、负责均衡器分发请求的类型

  LB转发的方式分为以下几种:

  • 轮转调度(Round-robin):最简单的方式,这种方式基本上不能算是负载均衡。第一个请求给web1,下一个给web2,再下一个给web3... 不会考虑某 一个服务器是不是负荷太重等等。
  • 基于权重的分配(Weight-based): 可以配置每一台服务器处理请求数据的比例,特别适合那种有某台服务器配置不一样的场景。比如说某台服务器配置特别好,那我们可以让它多处理一些请求。
  • 随机(Random): 随机分配。
  • 粘性session(Sticky Session): Load balancer会跟踪请求,确保同一个session id的请求都交给同一样服务器。
  • 最空闲优先(Least current request)将最新的请求转发给当前处理请求数量最小的那个服务器。
  • 响应时间优先(Response time):哪台服务器当前响应时间最短就给哪台。
  • 用户或URL参数选择(User or URL information)部分负载均衡器还提供根据一些参数来决定哪台服务器来处理,比如说根据用户信息,地址位置,URL参数,cookie信息等 。

  根据负载均衡器所使用的技术将它们分为以下几类:

  • 反向代理:负载均衡器作为一个代理,同时维持着两个TCP请求,从客户端接收请求,然后将请求转发给相应的Web 服务器,等Web返回Response的时候是返回给了代理服务器,然后再由代理服务器转交给真正的客户端。这样就会导致有一些功能不可用,比如在WEB服务器环境查看请求的来源IP实际上成了我们代理服务器的IP等。 
  • 透明反向代理:和上面的代理服务器一样,只不过WEB服务器从Request中获取到的信息是真正客户端的信息,就是好像没有使用代理一样的。
  • 直接服务器返回:通过更改WEB服务器的MAC 地址来实现分发请求,在这种方式下,WEB服务器不会像上面使用代理服务器一样,请求处理完之后是直接返回给客户端的,所有相对于反向代理来说这种方式的性能会更快一些。 
  • NAT 负载均衡:NAT(Network Address Translation网络地址转换),将网络包(可以理解成TCP包)中的目标IP地址变成实现要处理这个请求的WEB服务器的地址。
  • Microsoft 网络负载均衡:Windows 自带的负载均衡组件.NLB

  传送门:详细介绍http://www.cnblogs.com/jesse2013/p/dlws-loadbalancer.html

 三、四层和七层负载均衡

负载均衡通常解决方案是四层交换和七层交换的架构处理,这里的四层和七层是网络模型中的传输层和应用层。

1、四层负载均衡,也就是网络模型中的传输层(相关协议:TCP/UDP等),常用架构:LVS+keepalived负载均衡架构

    LVS主要有两种模式 NET模式(IP)和DR模式(MAC)。NET模式下用户所有请求到达LB,LB转发到真正的服务器,然后真正的服务器返回响应给LB,LB响应给用户;DR模式下,用户请求到到LB,LB转发真正服务器,然后真正服务器直接响应给用户,所以DR模式减轻了LB的压力使用更广泛一点。

2、七层负载均衡,也就是应用层(相关协议:HTTP/HTTPS),常用代理Nginx

    七层负载均衡主要识别HTTP相关ul,head,cookie,session等等同时安全防护减少直接攻击上有重要意义

资料:《四层和七层负载均衡的区别》http://kb.cnblogs.com/page/188170/

原文地址:https://www.cnblogs.com/xmai/p/4797770.html