一种负载均衡配置文件的调整方法及装置与流程

文档序号:20437764发布日期:2020-04-17 22:11阅读:171来源:国知局
一种负载均衡配置文件的调整方法及装置与流程

本发明涉及计算机领域,尤其涉及一种负载均衡配置文件的调整方法及装置。



背景技术:

随着互联网的快速发展和业务访问量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据中心、大型企业以及门户网站等的访问;同时,服务器网站借助http应用程序,为访问者提供了越来越丰富的内容和信息,服务器逐渐被大量的用户访问数据淹没;另外,大部分网站,尤其电子商务等网站,和移动app都需要提供不间断24小时服务,任何服务中断或通信中的关键数据丢失都会造成直接的商业损失。所有这些都对应用服务提出了高性能和高可靠性的需求。但是,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,因而服务器成为了网络瓶颈。传统的单机模式,也往往成为网络故障点。

针对以上情况,可以组建服务器集群,利用负载均衡技术在服务器集群间进行业务均衡。多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。服务器集群前端部署一台负载均衡设备,负责根据已配置的均衡策略将用户请求在服务器集群中分发,为用户提供服务,并对服务器可用性进行维护。

服务器负载均衡分为四层负载均衡和七层负载均衡两种,四层负载均衡是基于流的服务器负载均衡,对报文进行逐流分发,将同一条流的报文分发给同一个服务器。四层负载均衡对基于http(http,hypertexttransferprotocol)的七层业务无法做到按内容进行分发,限制了负载均衡业务的使用范围。七层负载均衡时基于内容的服务器服务在均衡,对报文的承载内容进行深度解析,包括http协议、rtsp(rtsp,realtimestreamingprotocol,rfc2326)协议,一种实时流传输协议,是tcp/ip协议体系中的一个应用层协议等,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,实现了业务使用范围更广泛的服务器负载均衡。

随着互联网用户规模的快速增长,七层负载均衡的内容分发策略根据用户行为、产品定义和访问安全等不同策略进行不同的参数配置,由于各负载均衡中的服务均需要相应的配置文件才能正确运行,因此负载均衡服务的逐渐增加将会导致负载均衡服务器中的配置文件越来越多,从而使得对配置文件的管理越来越复杂,因此对应七层负载均衡配置策略的快速高效配置也越来越受到重视。所以越来越多的七层配置管理系统也应运而生。

目前大多数的七层配置管理系统中,对于每个负载均衡服务器按照项目进行配置文件的管理,当运维人员确定负载均衡服务器集群中的某项目的配置文件需要更新或修改等操作时,需要在系统中找到该项目的配置文件进行手动修改。当同一时段负载均衡服务器集群中需要进行配置文件更新或修改等操作的项目数量较多时,运维人员仍然需要依次找到对应项目的配置文件,逐一对所述多个配置文件进行相应修改。运维人员常常无法快速地对多个配置文件同时更新或修改,从而导致对负载均衡服务器集群中的配置文件管理效率低下,同时,由于采用人工方式对负载均衡服务器集群中的配置文件进行管理操作,容器出现人工误操作导致服务异常,降低服务运行的可靠性。

在一般的七层配置管理系统中,对于每个负载均衡服务器按照项目进行配置文件的管理,但由于一个负载均衡服务器控制的项目数量越来越多,因此也相应带来了以下问题:

1)需要对每一个负载均衡服务器的配置文件进行管理,数量巨大,参数关系复杂,配置容易出错;

2)由于负载均衡服务器的增加,相应的配置文件也成倍增加,造成系统中运行的实时存储大小成本增加,效率也相应急剧降低;

3)配置参数多、且配置方法过于简单,导致配置大量负载均衡服务器时的时间长,效率低;

4)系统扩展比较复杂,每增加一个负载均衡服务器,配置文件数量大且复杂。

5)无变更审计和权限认证,导致出现问题时无法快速恢复服务。



技术实现要素:

本发明实施例提供一种负载均衡配置文件的调整方法,用以解决现有技术中存在的采用人工方式对配置文件管理时,管理效率低下以及可靠性较低的问题。

为实现上述目的,一方面,本发明实施例提供了一种负载均衡配置文件的调整方法,所述方法应用于负载均衡系统,所述方法包括:

接收配置文件的更新信息;其中,所述配置文件是按照预先配置的模板生成的,所述配置文件的更新信息包括模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名;

根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,动态生成配置文件下发脚本;

根据所述配置文件下发脚本,对配置文件进行更新。

另一方面,本发明实施例提供了一种负载均衡配置文件的调整装置,所述装置应用于负载均衡系统,所述装置包括:

信息接收单元:用于接收配置文件的更新信息;其中,所述配置文件是按照预先配置的模板生成的,所述配置文件的更新信息包括模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名;

脚本生成单元:用于根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,动态生成配置文件下发脚本;

更新单元:用于根据所述配置文件下发脚本,对配置文件进行更新。

上述技术方案具有如下有益效果:本申请的技术方案由于将七层负载均衡服务的配置存储为模板,模板按照按模板参数进行设置,由配置管理系统统一对不同负载均衡集群中的各节点的项目进行集中管理,而不必如现有的技术在每台负载均衡节点的配置文件中存储有所有的项目配置文件;从而大大节约了系统中的资源,尤其是各服务器的存储资源;使得整个系统以更低的成本、更为快速地集中管理更为庞大的七层负载均衡服务配置。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一种负载均衡配置管理系统的结构框图;

图2是本发明实施例一种负载均衡配置文件的调整方法的流程图;

图3是本发明实施例一种负载均衡配置文件的调整装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明使用的“集群”、“节点”、“项目”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,节点可以是,但并不仅限于:负载均衡器(nginx)实际运行的节点,可以为物理主机或容器;该负载均衡器是一款轻量级的web服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,在bsd-like协议下发行。其特点是占有内存少,并发能力强。

本发明实施例提供的基于模板的七层负载均衡配置调整方法的结构,如图1所示,包括:负载均衡201,一个负载均衡表示一个统一的七层入口,后端可以包含多个集群和项目。每个负载均衡之间的各种资源都完全隔离;集群202,是类节点的集合,常用于物理区域的划分,每个集群可以对自己的子节点定义模板参数;节点203,为负载均衡器nginx,其特点是占有内存少,并发能力强)实际运行的节点,可以为物理主机或容器;项目,一个产品或有相同域名和配置的一类服务,同时也是最小的权限单位;负载均衡实例,一个项目在一个负载均衡节点上的运行成为一个实例,在负载均衡节点上会有一个对应自己名称的项目的配置文件,同一个项目的所有实例用同一批域名,不同的后端服务器组;服务器集群中的各后端服务器成员,即实际提供业务服务的成员节点;以及模板,用于生成nginx主配置文件或每一个项目的配置的配置模板,模板语法采用gotemplate语法。另外,模板参数用于生成配置的自定义参数,通常由资源父级为子级定义需要制定的参数,有子级填写对应的实际值,具体关系为,负载均衡是集群的父级,集群为节点父级,项目是负载均衡实例的父级,负载均衡实例为后端服务器成员父级,模板是所有引用对象的父级。

如图2所示,是本发明实施例一种负载均衡配置文件的调整方法的流程图,所述方法应用于负载均衡系统,所述方法包括:

s101:接收配置文件的更新信息;其中,所述配置文件是按照预先配置的模板生成的,所述配置文件的更新信息包括模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名。

具体地,具有admin权限的管理员访问系统web页面时,配置管理系统208获取web页面管理员输入配置文件的更新信息。配置文件的更新信息具体包括:负载均衡、集群、节点、项目、负载均衡实例、后端服务器成员、模板信息、模板参数、以及操作变更审计的信息。

s102:根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,动态生成配置文件下发脚本。

优选地,根据所述配置文件对应对象的标识信息,调用所述对应对象的应用程序接口api函数;根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,利用所述api函数动态生成相应的配置文件下发脚本。

具体地,配置管理系统208根据输入的配置文件的更新信息,调用与配置信息相应的api函数,根据输入的配置文件的更新信息中的负载均衡、集群、节点、项目、负载均衡实例、后端服务器成员、模板、模板参数等信息动态生成相应的配置文件下发脚本。

例如,针对项目的配置文件信息的修改,则调用更新项目配置的api(applicationprograminterface,应用程序接口)函数,生成项目配置文件修改信息的配置文件下发脚本;

针对集群的配置文件信息的修改,则调用更新集群配置的api函数,生成集群配置文件修改信息的配置文件下发脚本。

s103:根据所述配置文件下发脚本,对配置文件进行更新。

优选地,根据所述配置文件下发脚本,在负载均衡系统的节点中获取所述配置文件并进行更新。

具体地,在配置管理系统208的配置信息数据库中记录了七层负载均衡的配置信息;配置管理系统208可以根据生成的配置文件下发脚本,获取并更新节点203中的项目配置文件。较佳地,配置管理系统208可以采用ssh技术更新节点203中的项目配置文件;上述步骤s302中生成的配置文件下发脚本具体可以是shell脚本(shellscript),shell脚本与windows/dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了linux/unix下的命令。

较佳地,配置管理系统208中的配置信息数据库可以是mongodb数据库,一个基于分布式文件存储的数据库。

对应于上述方法,如图3所示,是本发明实施例一种负载均衡配置文件的调整装置的示意图,所述装置应用于负载均衡系统,所述装置包括:

信息接收单元21:用于接收配置文件的更新信息;其中,所述配置文件是按照预先配置的模板生成的,所述配置文件的更新信息包括模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名;

脚本生成单元22:用于根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,动态生成配置文件下发脚本;

更新单元23:用于根据所述配置文件下发脚本,对配置文件进行更新。

进一步地,所述脚本生成单元具体用于:

根据所述配置文件对应对象的标识信息,调用所述对应对象的应用程序接口api函数;

根据所述模板的标识信息、模板的参数更新信息、配置文件对应对象的标识信息及域名,利用所述api函数动态生成相应的配置文件下发脚本。

进一步地,所述更新单元具体用于:

根据所述配置文件下发脚本,在负载均衡系统的节点中获取所述配置文件并进行更新。

进一步地,所述配置文件下发脚本为shell脚本。

进一步地,所述节点为负载均衡器nginx。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1