负载均衡原理与技术实现

负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业 务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载 均衡。

一 服务器负载均衡

服务器负载均衡根据LB设备处理到的报文层次,分为四层服务器负载均衡和七层负载均衡,四层处理到IP包的IP头,不解析报文四层以上载荷(L4 SLB);七层处理到报文载荷部分,比如HTTP,RTSP,SIP报文头,有时也包括报文内容部分(L7 SLB)。

1.四层服务器负载均衡技术

客户端将请求发送给服务器群前端的负载均衡设备,负载均衡设备上的虚服务接收客户端请求,通过调度算法,选择真实服务器,再通过网络地址转换,用真 实服务器地址重写请求报文的目标地址后,将请求发送给选定的真实服务器;真实服务器的响应报文通过负载均衡设备时,报文的源地址被还原为虚服务的 VSIP,再返回给客户,完成整个负载调度过程。报文交互流程如下:

NAT方式的服务器负载均衡报文交互流程图

报文交互流程说明:
(1)Host发送服务请求报文,源IP为Host IP、目的IP为VSIP
(2)LB Device接收到请求报文后,借助调度算法计算出应该将请求分发给哪台Server
(3)LB Device使用DNAT技术分发报文,源IP为Host IP、目的IP为Server IP
(4)Server接收并处理请求报文,返回响应报文,源IP为Server IP、目的IP为Host IP
(5)LB Device接收响应报文,转换源IP后转发,源IP为VSIP、目的IP为Host IP

2.七层服务器负载均衡技术

七层负载均衡和四层负载均衡相比,只是进行负载均衡的依据不同,而选择确定的实服务器后,所做的处理基本相同,下面以HTTP应用的负载均衡为例来说明。

由于在TCP握手阶段,无法获得HTTP真正的请求内容,因此也就无法将客户的TCP握手报文直接转发给服务器, 必须由负载均衡设备先和客户完成TCP握手,等收到足够的七层内容后,再选择服务器,由负载均衡设备和所选服务器建立TCP连接。

七层负载均衡组网和四层负载均衡组网有一个显著的区别:四层负载均衡每个虚服务对应一个实服务组,实服务组内的所有实服务器提供相同的服务;七层负 载均衡每个虚服务对应多个实服务组,每组实服务器提供相同的服务。根据报文内容选择对应的实服务组,然后根据实服务组调度算法选择某一个实服务器。

七层负载均衡组网图

上图中描述了基于HTTP的URI目录信息进行的七层负载均衡部署,报文交互流程图如下:

七层负载均衡报文交互流程图

报文交互流程说明:
(1)-(3):Client和LB建立TCP连接;
(4):Client发送HTTP请求,目的IP为虚IP;
(5):LB设备分析报文,根据调度算法选择实服务器,注意此时会缓存该报文;
(6):LB设备向实服务器发Syn报文,序列号为Client的Syn报文序列号
(7):Server发送Syn/Ack报文,目的IP为Client;
(8):LB接收Server的Syn/Ack报文后,回应ACK报文
(9):修改步骤(5)中缓存的报文目的IP和TCP序列号,然后发给Server;
(10):Server发送响应报文到LB;
(11):LB修改步骤(9)中的报文的源地址和TCP序列号后转发给Client。

二 链路负载均衡

在企业网、运营商链路出口需要部署LB设备以优化链路选择,提升访问体验,链路负载均衡按照流量发起方向分为Inbound负载均衡和Outbound负载均衡

1.Inbound入方向负载均衡

Inbound负载均衡技术是DNS智能解析的一种,外网用户通过域名访问内部服务器时,Local DNS的地址解析请求到达LB设备,LB根据对Local DNS的就近性探测结果响应一个最优的IP地址,外网用户根据这个最优的IP响应进行对内部服务器的访问。

Inbound链路负载均衡组网图

入方向负载均衡

流程简述如下:
(1)外部用户进行资源访问前先进行DNS解析,向其本地DNS服务器发送DNS请求。
(2)本地DNS服务器将DNS请求的源IP地址替换为自己的IP地址,并转发给域名对应的权威服务器——LB device。
(3)LB device根据DNS请求的域名和配置的Inbound链路负载均衡规则进行域名解析。
(4)LB device按照域名解析的结果,将DNS应答发送给本地DNS服务器。
(5)本地DNS服务器将解析结果转发给用户。
(6)用户使用解析结果选择的链路,直接对LB device进行资源访问。

2.Outbound出方向负载均衡

内网用户访问Internet上其他服务器。 Outbound链路负载均衡中VSIP为内网用户发送报文的目的网段。用户将访问VSIP的报文发
送到负载均衡设备后,负载均衡设备依次根据策略、持续性功能、就近性算法、调度算法选择最佳的链路,并将内网访问外网的业务流量分发到该链路。

Outbound链路负载均衡组网图

Outbound负载均衡报文交互流程如下:

Outbound 链路负载均衡流程图

Outbound负载均衡报文交互流程说明:
(1)LB Device接收内网用户流量      -
(2)LB Device依次根据策略、持续性功能、就近性算法、调度算法进行链路选择   在Outbound链路负载均衡组网中,通常使用就近性算法或带宽调度算法实现流量分发
(3)LB device按照链路选择的结果将流量转发给选定的链路       -
(4)LB Device接收外网用户流量      -
(5)LB Device将流量转发给内网用户

三 负载均衡优化及应用

1.TCP连接复用

连接复用功能通过使用连接池技术,可以将前端大量的客户的HTTP请求复用到后端与服务器建立的少量的TCP长连接上,大大减小服务器的性能负载,减小与服务器之间新建TCP连接所带来的延时,并最大限度减少后端服务器的并发连接数,降低服务器的资源占用。

TCP连接复用示意图

上图给出了TCP连接复用的简单过程描述。由Client端发送的Req1/ Req2/ Req3三个HTTP请求,经过LB设备后,复用了LB设备和Server端已经建立好的连接,将Client端的三个请求通过两个TCP连接发送给了服务器端。

2.SSL卸载

为了避免明文传输出现的安全问题,对于敏感信息,一般采用SSL协议,如HTTPS,对HTTP协议进行加密,以保证整个HTTP传输过程的安全
性。SSL是需要耗费大量CPU资源的一种安全技术,如果由后端的服务器来承担,则会消耗很大的处理能力。应用交付设备为了提升用户的体验,分担服务器的
处理压力,将SSL加解密集中在自身的处理上,相对于服务器来说LB能提供更高的SSL处理性能,还能够简化对证书的管理,减少日常管理的工作量,LB的
该功能又称为SSL卸载。

下图中Client端发送给Server的所有的HTTPS流量都被LB设备终结,LB设备将SSL终结后,与Server之间可采用HTTP或者
弱加密的HTTPS进行通讯。LB设备承担了SSL的卸载工作,从而极大的减小了服务器端对SSL处理的压力,将服务器的处理能力释放出来,更加专注于处
理服务器本身承担的业务逻辑。

SSL卸载示意图

SSL卸载的处理流程如下:

SSL卸载过程

(1)客户端向服务器端发送SSL握手请求。
(2)LB设备作为中间的卸载设备,代替服务器端和客户端交互,完成SSL握手过程。
(3)客户端发送SSL加密后的请求数据。
(4)LB设备解密数据。
(5)LB设备将解密后的明文发送给Server。
(6)服务器返回给LB设备回应报文。
(7)LB设备将返回的应答报文加密。
(8)LB设备将加密后的应答报文传给客户端。

四 结束语

负载均衡技术不管应用于用户访问服务器资源,还是应用于多链路出口,均大大提高了对资源的高效利用,显著降低了用户的网络布署成本,提升了用户的网络使用体验。随着云计算的发展,负载均衡的技术实现还将与云计算相结合,在虚拟化和NFV软件定义网关等方面持续发展。

转载自SDNLAB

时间: 2024-11-11 01:20:49

负载均衡原理与技术实现的相关文章

搞懂分布式技术9:Nginx负载均衡原理与实践

搞懂分布式技术9:Nginx负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如的方式访问,在请求时,浏览器首先会查询DNS服务器获取对应的IP,然后通过此IP访问对应的服务. 因此,一种方式是域名映射多个IP,但是,存在一个最简单的问题,假设某台服务器重启或者出现故障,DNS会有一定的缓存时间,故障后切换时间长,而且没有对

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

使用 LVS 实现负载均衡原理及安装配置详解

使用 LVS 实现负载均衡原理及安装配置详解 来源:肖邦linux 发布时间:2017-02-19 阅读次数:106 0 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用

[转]f5负载均衡原理

f5负载均衡原理 一. 负载均衡技术 负载均衡技术在现有网络结构之上提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 1. 负载均衡发生的流程图: 1. 客户发出服务请求到VIP 2.BIGIP接收到请求,将数据包中目的IP地址改为选中的后台服务器IP地址,然后将数据包发出到后台选定的服务器 3. 后台服务器收到后,将应答包按照其路由发回到BIGIP 4.BIGIP收到应答包后将其中的源地址改回成VIP的地址,发回客户端

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

【转】《从入门到精通云服务器》第七讲—负载均衡和CDN技术

在IDC知识中,我们常常会遇上负载均衡与CDN的概念而不知所云.第一讲[什么是云计算], 我们提到过负载均衡,仅给大家留下了印象.这次我们将深入浅出的讲讲到底什么是负载均衡与CDN技术.---互联网数据中心(Internet Data Center)简称IDC 负载均衡(load balance) BOSS一次给了小明好多项任务,小明发现怎么安排时间也做不完,于是乎他盯上了在旁边偷偷看电影的小强,小强突然觉得背后有一股凉气,一回头小明一脸坏笑看着他,“这几个任务交给你,晚上请你吃饭,要不然…嘿嘿

负载均衡的基础技术种类

  通过负载均衡实现应用服务器伸缩性 1. HTTP重定向负载均衡利用HTTP重定向协议实现负载均衡.如下图所示: HTTP重定向负载均衡原理 HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算一台真实的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中(响应状态码302)返回给用户浏览器. 缺点: 1.浏览器需要两次请求服务器才能完成一次访问,性能较差 2.重定向服务器自身的处理能力有可能成为瓶颈,整个集群的伸缩性规模有限 3.使用HTTP30

RestTemplate 负载均衡原理

RestTemplate负载均衡原理 RestTemplate为什么具有负载均衡的功能? 在使用了@LoadBalanced后,Spring容器在启动的时候会为被修饰过的RestTemplate添加拦截器,拦截器里会使用LoadBalanced相关的负载均衡接口来处理请求,通过这样一个间接的处理,会使原来的RestTemplate变得不是原来的RestTemplate了,就变的更NB了,因此具备了负载均衡的功能.那么在这章的内容中呢,笔者将带大家实现一个很简单的LoadBalanced注解,为R

k8d创建资源(3)(负载均衡原理,回滚指定版本,label控制pod的位置)

Deployment介绍 Deployment是kubernetes 1.2引入的概念,用来解决Pod的编排问题.Deployment可以理解为RC的升级版(RC+Reolicat Set).特点在于可以随时知道Pod的部署进度,即对Pod的创建.调度.绑定节点.启动容器完整过程的进度展示. 使用场景 创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程.检查Deployment的状态来确认部署动作是否完成(Pod副本的数量是否达到预期值).更新Deplo