负载均衡技术的应用策略研究
2022-05-11长江大学计算机科学学院李辉
◇长江大学计算机科学学院 李辉
随着计算机和网络技术的快速发展,计算机的运行和处理数据能力也进一步增强,仅靠单台设备来处理数据已无法满足日益复杂的数据处理需求。负载均衡技术能够对任务进行合理分配,多台设备并行处理任务,系统的处理能力大大提高,同时缩减了响应等待的时间。本文详细介绍了负载均衡技术的分类及不同技术的特点和应用范围,对制定合理的负载均衡策略需考虑的因素进行了分析,为处理更为复杂的任务提供了理论依据。
1 引言
随着计算机和网络技术的快速发展,计算机的运行和处理数据能力也进一步增强,传统简单的处理设备无法承担处理庞大数据流量和访问量的任务。如果仅采用简单的传统硬件升级办法来提高计算机的运行速度和能力,不仅将造成大量的资源浪费,更重要的是面对发展如此迅速的网络技术和日益复杂的数据处理需求,仅采用硬件升级的办法只能解决一时的问题,不能作为长久之计[1]。由单一模块处理转换成多模块共同处理,并且使多模块处理任务尽可能平均分配处理任务的需求日益凸显,既能解决资源浪费的问题,又能提升计算机处理能力,还能降低因设备频繁升级产生的时间成本,负载均衡技术也应运而生[2]。
负载均衡技术的提出是1996年Foundry公司提出的,Foundry公司的主营产品是交换机,在面对当时互联网行业的迅猛发展,业务规模暴增,使得该公司不得不研发新的方案来处理处理能力与需求量严重不匹配的矛盾,基于此背景,Foundry公司研发出负载均衡产品,并将其运用到自己的交换机上。负载均衡技术有两个方面的功能:一方面,该技术因对任务进行了合理分配,多台设备并行处理任务,后由专门的设备处理汇总进行反馈,使系统的处理能力大大提高;另一方面,由单台设备优化为多台设备处理,缩减了响应等待的时间[3]。负载均衡原理示意图如图1所示。
图1 负载均衡原理示意图
负载均衡并非字面理解的绝对均衡,通常是把因处理量特别大可能导致某台设备“堵塞”的负载分配给其他设备进行处理,对任务进行分担[4]。负载均衡的作用类似于轮流值日制度,并将接收到的处理任务分给大家共同完成。
2 负载均衡技术的应用
2.1 负载均衡技术的功能
负载均衡技术因在传统技术手段上提供了一种效率更高、可靠性更强的方法,同时扩展了服务器、网络设备、链路的带宽,使得处理数据的能力大大加强,提高了网络的灵活性和可用性,因而被广泛使用[5]。
负载均衡技术主要有七个方面的功能:解决网络拥堵问题、就近提供服务、提升用户的使用满意度、提高服务器的处理能力和响应速度、降低资源的浪费、实现地理位置无惯性、降低单点失效的概率。
2.2 负载均衡技术的分类及应用
负载均衡均衡技术主要可分为以下四类:软件负载均衡和硬件负载均衡,本地负载均衡和全局负载均衡,更高网络层负载均衡,链路聚合技术。负载均衡技术的应用应从网络的不同层次着手进行实际分析。本文以客户端应用为起点进行纵向分析,结合开放式系统互联通信参考模型(简称OSI模型),将负载均衡技术的应用分为基于客户端负载均衡技术、应用服务器的负载均衡技术、基于域名系统的负载均衡技术、链路聚合技术等几种方式[6]。
(1)基于客户端负载均衡技术。简单来将,该技术就是在客户端编写一个特殊的程序,该程序对任务进行处理后再向服务器发起请求。在进行处理任务时,首先由该特殊程序对任务进行判断,依此来制定最合理的处理策略,确定最佳服务器来进行任务处理,在此服务器无法正常处理任务时,会向其他能处理该任务的服务器发起请求,这是一种动态的附在均衡技术。其运行原理如图2所示。
图2 基于客户端负载均衡技术运行原理图
基于客户端负载均衡技术的特点有:①均衡技术是在客户端实现的,不需要使用其他外部负载均衡设备;②特定程序处理后的任务有可能导致所有服务器均无法使用的问题,其透明度低;③特定程序处理后的任务有可能导致单台服务器过载的问题。鉴于该技术存在以上特点,在实际处理任务时,需对特殊程序进行优化,即针对不同的任务,对该特殊程序进行一定的修改,使之能够制定出更合理的处理策略,如果想高效合理的应用该技术,特殊程序的开发频率较高,其工作量较大。通常该技术比较适合客户端有较庞大的程序库,以及对服务器入流量较大的任务(比如,Memcache大流量写入),该技术也可以与其他负载均衡技术相结合来制定更加合理的策略。
(2)应用服务器的负载均衡技术。在基于客户端负载均衡技术的基础上,如果能用中间平台来替代那些特殊程序,构成一种三层数据处理结构,那么在客户端就可以不用经常对特殊程序进行修改,而是在中间利用某一专业的技术手段对任务进行处理后再提交到服务器,应用最广泛的技术就是反向代理技术,该技术可将任务比较均匀的发送到各个服务器,以达到负载均衡的目的。其技术原理如图3所示。
图3 应用服务器的负载均衡技术运行原理图
应用服务器的负载均衡技术的特点是可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供更加优化的策略。其缺点是在处理不同类型的任务时,都需要用到不同的负载均衡器,开发成本较高。该技术主要用在windows NLB、nginx反向代理和F5设备上。
(3)基于域名系统的负载均衡技术。美国国家超级计算应用中心是最先使用基于域名系统的负载均衡技术的,目前,大部分负载均衡技术都是通过域名系统来访问目的主机的,在客户端发出任务处理请求时,首先必须通过DNS请求获得服务器的IP地址,基于DNS的全局负载均衡正是在返回DNS解析结果的过程中,制定出最优化的任务处理策略,最终会反馈一个最佳服务IP到客户端。其技术原理如图4所示。
图4 基于域名系统的负载均衡技术运行原理图
因该技术应用难度不高,且不需要复杂的软硬件设备,易于管理,因此被广泛使用。
(4)链路聚合技术。链路聚合技术又称 Trunk,是指利用多个物理端口相互捆绑,从而形成一个逻辑端口,从而分担各成员端口出/入流量的负荷量的新兴技术[7]。交换机会在分析了用户配备的端口负担的流量决定报文发送到什么交换机和何种类型的端口上。
3 负载均衡策略
在处理复杂的任务时,如果能够制定最佳的负载均衡策略,既能对任务进行合理分配,提高系统的处理能力,又能缩减响应等待的时间[8]。在各类负载均衡技术中,根据客户端的不同需求,在开放式系统互联通信参考模型的第二、三、四、七层的负载均衡都有不同的负载均衡策略。影响负载均衡策略效率和难易程度的关键因素主要有负载均衡算法和其检测方法和能力。常用的负载均衡算法有轮循均衡、权重轮循均衡、随机均衡、权重随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡。应根据客户端的实际需求来选择恰当的算法,从而制定出最优化的负载均衡策略。
4 结束语
应用最佳的负载均衡策略能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而降低运行成本,提高网络的灵活性和可靠性。