CN116016534A - 内网负载均衡调度方法、装置、存储介质及计算机设备 - Google Patents
内网负载均衡调度方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN116016534A CN116016534A CN202211689238.0A CN202211689238A CN116016534A CN 116016534 A CN116016534 A CN 116016534A CN 202211689238 A CN202211689238 A CN 202211689238A CN 116016534 A CN116016534 A CN 116016534A
- Authority
- CN
- China
- Prior art keywords
- instance
- server
- load balancing
- scheduling
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请提供的内网负载均衡调度方法、装置、存储介质及计算机设备,当检测到内网中任意一个后端服务器接收到配置文本时,可以提取该配置文本中的实例参数并转换为实例配置文件,以便规范实例配置文件格式,避免配置文本中语法或格式错误导致文件无法加载,接着可以将该实例配置文件同步至各个nginx服务器上,以便每一个服务器加载实例配置文件生成业务调度实例,然后通过解析该业务调度实例中每一个域名得到对应的调度信息,并根据每一调度信息从目标服务器中获取对应的目标业务依次分配至各个服务器上,通过各个服务器将目标业务发送到请求服务器,通过这种调度方式可以统一内网中业务调用方式,进而提高业务调度效率,减少调用故障的产生。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内网负载均衡调度方法、装置、存储介质及计算机设备。
背景技术
随着公司业务以及公有云技术的不断发展,公司将一些关键业务迁移到公有云、不同的云厂商以及不同的数据中心机房中,形成一个多机房、多云的混合云场景,且公司的网站应用上线得越来越多,各个应用之间的接口调用由原来的单一机房内调用的方式也变成了多机房、多云之间的调用。
目前公司的网络环境采用的业务调用方式,仍存在负载均衡设备功能单一、各个后端服务器之间的调度方式不统一等问题,导致内部业务调度时不稳定,例如,当公司网络存在内外网环境隔离时,业务在内部调度时需要经过公网转发才能进行调度,导致业务调度的链路变长,降低了业务调度效率,若只通过单节点内网RIP进行调度,则在服务不可用时就会导致请求失败无法进行故障转移,导致业务调度产生的故障频发。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中业务调用方式存在负载均衡设备功能单一、各个后端服务器之间的调度方式不统一导致业务调度产生的故障频发的技术缺陷。
本申请提供了一种内网负载均衡调度方法,所述方法包括:
当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取所述配置文本的实例参数,将所述实例参数转换为nginx服务器可识别的实例配置文件;
将所述实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例;
获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及所述IP地址对应的调度信息,所述调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及所述请求服务器的机器标识;
依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及所述请求服务器的机器标识依次分配至所述负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到所述请求服务器。
可选地,所述提取所述配置文本的实例参数,包括:
依据预设关键字段列表,对所述配置文本的配置信息进行解析,确定所述配置信息中的各个关键字段以及每一个关键字段对应的参数位置;
基于每一个参数位置,对所述配置信息进行切割,得到所述配置文本中的各个参数,形成实例参数。
可选地,所述将所述实例参数转换为nginx服务器可识别的实例配置文件,包括:
依据预设关键字段列表,将所述实例参数中每一个参数写入至数据库对应的数据库表中,所述数据库表为以所述预设关键字段列表中的每一个关键字段为表头的表单;
通过接口将所述数据库表的所述实例参数中每一个参数以数据转换格式输出,得到数据转换文件,并将所述数据转换文件转换为nginx服务器可识别的实例配置文件。
可选地,所述将所述数据转换文件转换为nginx服务器可识别的实例配置文件,包括:
获取自定义模板,所述自定义模板为包含多个变量的配置文件,任意一个变量均定义一个与该变量对应的参数;
依据变量与参数的对应关系,将所述数据转换文件中的每一个参数写入到所述自定义模板中,生成nginx服务器可识别的实例配置文件。
可选地,所述将所述实例配置文件同步至负载均衡集群中各个nginx服务器,包括:
通过SSH协议建立与负载均衡集群中每一个nginx服务器之间的加密连接,生成SSH密钥;
利用每一个SSH密钥登录对应的nginx服务器,并将所述实例配置文件拷贝至所述负载均衡集群中对应的nginx服务器。
可选地,所述触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例,包括:
基于nginx语法对每一个nginx服务器中的实例配置文件进行语法检测;
若检测成功,则通过nginx服务器对所述实例配置文件进行生效,生成对应的业务调度实例;
若检测失败,则将对应的nginx服务器进程回滚,返回所述实例配置文件同步前的运行状态。
可选地,所述方法还包括:
在内网负载均衡调度过程中,若存在任意一个nginx服务器实例配置文件同步失败或生效失败,则将该nginx服务器的进程回滚,返回所述实例配置文件同步前的运行状态。
本申请还提供了一种内网负载均衡调度装置,包括:
数据获取模块,用于当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取所述配置文本的实例参数,将所述实例参数转换为nginx服务器可识别的实例配置文件;
文件同步模块,用于将所述实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例;
域名解析模块,用于获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及所述IP地址对应的调度信息,所述调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及所述请求服务器的机器标识;
业务调度模块,用于依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及所述请求服务器的机器标识依次分配至所述负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到所述请求服务器。
本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任意一个项所述内网负载均衡调度方法的步骤。
本申请还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任意一个项所述内网负载均衡调度方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的内网负载均衡调度方法、装置、存储介质及计算机设备,在内网中进行负载均衡调度时,若检测到内网中任意一个后端服务器接收用户上传的配置文本,则将该后端服务器作为请求服务器,并提取该配置文本中包含的实例参数,以便将该实例参数转换为nginx服务器可识别的实例配置文件,这样可以规范实例配置文件的格式,避免配置文本中存在字符串书写格式不规范或语法错误等问题影响服务器对实例配置文件的加载,同时简化配置流程,接着可以将该实例配置文件同步至负载均衡集群中各个nginx服务器上,以触发每一nginx服务器对实例配置文件进行加载,生成业务调度实例,然后可以通过解析该业务调度实例中每一域名得到对应的调度信息,该调度信息包括了待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及请求服务器的机器标识,以便根据各个调度信息从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及请求服务器的机器标识依次分配至负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到请求服务器,通过这种调度方式可以将内网内部各个业务的调用方式进行统一,同时解决负载均衡目标服务单点、发送故障时无法进行故障转移的问题,进而提高业务调度效率,减少调用时故障的产生。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种内网负载均衡调度方法的流程示意图;
图2为本申请实施例提供的内网负载均衡架构的结构示意图;
图3为本申请实施例提供的nginx服务器中实例配置文件的同步流程示意图;
图4为本申请实施例提供的一种内网负载均衡调度装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着公司业务以及公有云技术的不断发展,公司将一些关键业务迁移到公有云、不同的云厂商以及不同的数据中心机房中,形成一个多机房、多云的混合云场景,且公司的网站应用上线得越来越多,各个应用之间的接口调用由原来的单一机房内调用的方式也变成了多机房、多云之间的调用。
目前公司的网络环境采用的业务调用方式,仍存在负载均衡设备功能单一、各个后端服务器之间的调度方式不统一等问题,导致内部业务调度时不稳定,例如,当公司网络存在内外网环境隔离时,业务在内部调度时需要经过公网转发才能进行调度,导致业务调度的链路变长,降低了业务调度效率,若只通过单节点内网RIP进行调度,则在服务不可用时就会导致请求失败无法进行故障转移,导致业务调度产生的故障频发。
基于此,本申请提出了如下技术方案,具体参见下文:
在一个实施例中,如图1所示,图1为本申请实施例提供的一种内网负载均衡调度的流程示意图;本申请提供了一种内网负载均衡调度方法,具体包括如下:
S110:当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取配置文本的实例参数,将实例参数转换为nginx服务器可识别的实例配置文件。
本步骤中,当用户在内网中需要从其他机房的后端服务器中调用业务时,可以将需要调用的目标业务以配置文本的形式上传到管控端,并将上传配置文本的后端服务器作为请求服务器,当管控端接收到请求服务器上传的配置文本后,可以将该配置文本中的实例参数提取出来,以便将实例参数统一转换为nginx服务器可识别的实例配置文件。
需要说明的是,本申请采用多个nginx服务器构建为负载均衡集群用于内网中负载均衡的业务调度,通过增加nginx服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的nginx服务器,因此需要将实例参数从用户上传的配置文本中提取出来并统一转换为nginx服务器可识别的实例配置文件。
具体地,用户上传的配置文本可以有两种类型,一种为自动类型,该类型配置文本的配置参数简洁,实现的实例功能比较单一,因此可以直接获取该配置文本中的实例参数,并转换为nginx服务器可识别的实例配置文件;而另一种类型为自定义类型,该类型配置文本相比自动类型更为复杂,在进行业务调度时,用户可以根据具体场景和业务调度需求自定义配置文本并上传,管控端接收到自定义配置文本后可以利用nginx对提交的配置进行信息提取并转换为nginx服务器可识别的实例配置文件。
举例来说,在同一个应用中存在多个域名和不同的URL(Uniform ResourceLocato,统一资源定位器)路径,并且每一条URL路径都指向不同的后端服务器,或者在同一个应用中需要使用后端服务器的健康检测、自定义变量、自定义响应头、请求头或URL路径重写等自定义功能时,用户可以通过编辑器或者是以文本格式的方式自定义配置后将配置文本上传,管理端检测到配置文件上传后,会通过nginx对提交的配置进行信息提取,并转换为nginx服务器可识别的实例配置文件。
S120:将实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对实例配置文件进行加载,生成对应的业务调度实例。
本步骤中,通过步骤S110得到nginx服务器可识别的实例配置文件后,可以根据每一个nginx服务器的配置路径,将实例配置文件同步至负载均衡集群中的各个nginx服务器中,并触发每一个nginx服务器对实例配置文件进行加载,生成对应的业务调度实例。
具体地,在生成实例配置文件后,可以通过SSH(Secure Shell,安全外壳协议)协议将管控端中生成的实例配置文件采用SCP(Secure copy,安全文件拷贝)将实例配置文件拷贝到每一个nginx服务器中,并通过向nginx发送HUB信号去加载新的配置。
可以理解的是,SSH为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议,而SCP基于SSH实现,SCP的底层为SSH协议,在使用过程中先用SSH登录到各个nginx服务器中,然后在加密连接中复制实例配置文件,当实例配置文件拷贝完成后,可以向nginx服务器发起HUB信号,nginx服务器接收到信号后将会关闭原有进程,并开启新的工作进程,对实例配置文件进行加载,生成业务调度实例。
S130:获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及所述IP地址对应的调度信息。
本步骤中,通过步骤S120在每一个nginx服务器中生成业务调度实例后,可以获取任意一个nginx服务器生成的业务调度实例的所有域名,并利用DNS(Domain Name Server,域名服务器)对每一个域名进行解析,通过解析得到各个域名对应的IP地址和调度信息。
具体地,在对业务调度实例的每一个域名进行解析时,可以将待解析的域名放到DNS的请求报文中,以UDP用户数据报方式发给部署在机房中的本地域名服务器,在本地域名服务器在查找到对应的域名后,把对应的IP地址放在回答报文中返回,得到该域名对应的IP地址,从而可以根据该IP地址获取到待调度的请求服务器,以及该请求服务器带获取的目标业务,从而得到该域名请求对应的调度信息。
需要说明的是,本申请中的调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及请求服务器的机器标识,以作为ngnix服务器将各个目标业务根据不同域名请求进行调度的依据。
S140:依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及请求服务器的机器标识依次分配至所述负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到请求服务器。
本步骤中,通过步骤S130得到每一个域名对应的调度信息后,可以依据各个调度信息中目标业务的业务标识从对应的目标服务器中获取对应的目标业务,以便将获取到的多个目标业务以及请求服务器的机器标识依次分配至负载均衡集群中的各个nginx服务器上,并依据各个待调度的目标服务器的机器标识确定各个对应的目标服务器,接着通过各个nginx服务器分别将对应目标业务发送到请求服务器。
进一步地,当具有多个目标业务时,可以通过轮询的方法向各个nginx服务器发送目标业务调度请求,该目标业务调度请求包括目标业务以及对应的请求服务器的机器标识,以使nginx服务器依次接收并处理目标业务调度请求,并将对应的目标业务进行调度,本申请还可以根据nginx服务器的不同性能对nginx服务器进行加权,让性能好的nginx服务器承担更多的请求,例如,4C8G和8C16G的nginx服务器都有的负载均衡集群中,可以提高8C16G的nginx服务器的权重,以便处理更多的目标业务调度请求。
再进一步地,本申请利用nginx将目标业务均匀的分摊给负载均衡集群中各个nginx服务器,而nginx基于Round-Robin或者Least-Connected算法分发业务请求,通过这种内网负载均衡调度的方法,即使其中一个服务器宕机也不会影响业务调度的处理,随着目标业务的添加,可以通过增加部署nginx服务器来实现横向扩容。
示意性的,如图2所示,图2为本申请实施例提供的内网负载均衡架构的结构示意图;在图2中,该内网中通过将负载均衡服务器nginx作为基础的负载均衡服务,结合四层的负载均衡设备,并绑定内部VIP的方法来实现内网负载均衡调度,将各个目标业务对应的域名转发到DNS中进行解析,接着可以根据解析结果通过内部VIP从目标服务器转发到nginx服务器上,然后nginx再根据各个不同域名对应的调度信息将目标业务分派到对应的请求服务器上。
上述实施例中,在内网中进行负载均衡调度时,若检测到内网中任意一个后端服务器接收用户上传的配置文本,则将该后端服务器作为请求服务器,并提取该配置文本中包含的实例参数,以便将该实例参数转换为nginx服务器可识别的实例配置文件,这样可以规范实例配置文件的格式,避免配置文本中存在字符串书写格式不规范或语法错误等问题影响服务器对实例配置文件的加载,同时简化配置流程,接着可以将该实例配置文件同步至负载均衡集群中各个nginx服务器上,以触发每一nginx服务器对实例配置文件进行加载,生成业务调度实例,然后可以通过解析该业务调度实例中每一域名得到对应的调度信息,该调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及请求服务器的机器标识,以便根据各个调度信息从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及请求服务器的机器标识依次分配至负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到请求服务器,通过这种调度方式可以将内网内部各个业务的调用方式进行统一,同时解决负载均衡目标服务单点、发送故障时无法进行故障转移的问题,进而提高业务调度效率,减少调用时故障的产生。
在一个实施例中,步骤S110中提取配置文本的实例参数的步骤,可以包括:
S111:依据预设关键字段列表,对配置文本的配置信息进行解析,确定配置信息中的各个关键字段以及每一个关键字段对应的参数位置。
S112:基于每一个参数位置,对配置信息进行切割,得到配置文本中的各个参数,形成实例参数。
本实施例中,在内网中检测到用户上传的配置文件后,可以依据预设的关键字段列表中的每一个关键字段,在配置文本的配置信息中进行检索,索引到配置信息对应的各个关键字段,以及每一个关键字段对应的参数位置,以便管控端利用nginx的语法特点将每一个参数从配置信息的字符串中切割出来,从而得到实例参数。
可以理解的是,在自定义配置文本中,容易出现格式不规范,空格长度不一致、字符串的语法错误、配置可能和已有配置存在冲突等问题,因此可以依据预设关键字段列表将每一个参数提取出来,通过关键字段可以确定每一个配置文件对应的实例参数中每一个参数的含义,该实例参数可以包括域名、后端服务器、监听的端口、后端采用的协议等参数。
举例来说,当检测到内网中用户上传的一个自定义配置文本后,获取该自定义配置文本的配置信息,该配置信息其中一部分代码如下所示:
根据预设关键字段列表中,可以将该部分配置文件中的每一个参数提取出来,组成到对应的实例参数,该部分配置文件提取后得到的参数具体如下:
域名:ks.pcx.com
监听端口:80
后端协议:http
后端服务器:192.168.xx.x1:8080,192.168.xx.x2:8080,
192.168.xx.x3:8080,192.168.xx.x4:8080
在一个实施例中,步骤S110中将实例参数转换为nginx服务器可识别的实例配置文件的步骤,可以包括:
S113:依据预设关键字段列表,将实例参数中每一个参数写入至数据库对应的数据库表中,该数据库表为以预设关键字段列表中的每一个关键字段为表头的表单。
S114:通过接口将数据库表的实例参数中每一个参数以数据转换格式输出,得到数据转换文件,并将数据转换文件转换为nginx服务器可识别的实例配置文件。
本实施例中,在提取到实例参数后,可以将该实例参数中的每一个参数写入到数据库中对应的数据库表中,以便统一生成格式规范的实例配置文件,在生成实例配置文件时,可以利用接口将数据库表的实例参数中每一个参数以数据转换格式输出,接着在转换为nginx服务器可识别的实例配置文件。
具体地,在数据库对应的数据库表中,该数据表为以预设关键字段列表中的每一个关键字段为表头的表单,该数据库表关键字段数据结构表具体包括如下:
表1数据库表关键字段数据结构表
通过上表的各个关键字段,可以将通过接口将数据库表的实例参数中每一参数以数据转换格式输出,得到数据转换文件,在获取实例参数对应的数据转换文件时,可以通过实例参数中的实例ID在数据库中查询,并索引到该实例ID对应的实例参数中的其他参数,接着以数据转换格式输出该实例参数的数据转换文件。
举例来说,当要获取实例IDlb_xw3kpbj6ui7c的实例参数时,可以通过接口/slb/intra/v1/List?id=lb_xw3kpbj6ui7c在数据库中进行读取,接口读取到实例参数后返回的数据转换文件内容具体如下:
在一个实施例中,步骤S114中将数据转换文件转换为nginx服务器可识别的实例配置文件的步骤,可以包括:
S141:获取自定义模板,该自定义模板为包含多个变量的配置文件,任意一个变量均定义一个与该变量对应的参数。
S142:依据变量与参数的对应关系,将数据转换文件中的每一个参数写入到自定义模板中,生成nginx服务器可识别的实例配置文件。
本实施例中,在获取到实例参数对应的数据转换文件后,可以通过提前设置好的自定义模板,并将模板中各个参数定义为与该参数对应的变量,接着可以依据变量与参数的对应关系,将数据转换文件中的每一个参数写入到自定义模板中,从而生成nginx服务器可识别的实例配置文件。
举例来说,将上述实施例中接口返回的数据转换文件中的实例参数转换为nginx服务器可识别的实例配置文件,该实例配置文件中的配置信息具体包括如下:
在一个实施例中,步骤S120中将实例配置文件同步至负载均衡集群中各个nginx服务器的步骤,可以包括:
S121:通过SSH协议建立与负载均衡集群中每一个nginx服务器之间的加密连接,生成SSH密钥。
S122:利用每一个SSH密钥登录对应的nginx服务器,并将实例配置文件拷贝至所述负载均衡集群中对应的nginx服务器。
本实施例中,在控制端将数据转换文件转换为实例配置文件后,可以通过通过SSH协议建立与负载均衡集群中每一个nginx服务器之间的加密连接,生成SSH密钥,防止远程文件传输过程中的信息泄露,在利用每一个SSH密钥登录对应的nginx服务器后,根据每一个nginx服务器的目标配置路径,将实例配置文件拷贝至所述负载均衡集群中对应的nginx服务器。
具体地,在拷贝实例配置文件的过程中,可以采用SCP的方法进行拷贝,SCP可以实现两个远程系统之间的复制,在复制过程中,文件和密码都已加密,防止敏感信息泄露,通过在服务器命令行输入实例配置文件在管控端的原始路径以及nginx服务器中待复制的目标配置路径实现文件拷贝,进一步地,若所要该实例配置文件在目标路径已经存在同名文件,SCP会在没有警告的情况下覆盖同名文件。
在一个实施例中,步骤S120中触发每一个nginx服务器对实例配置文件进行加载,生成对应的业务调度实例的步骤,可以包括:
S123:基于nginx语法对每一个nginx服务器中的实例配置文件进行语法检测。
S124:若检测成功,则通过nginx服务器对实例配置文件进行生效,生成对应的业务调度实例。
S125:若检测失败,则将对应的nginx服务器进程回滚,返回实例配置文件同步前的运行状态。
本步骤中,当每一个nginx服务器中实例配置文件拷贝结束后,可以利用nginx的语法特点对每一个nginx服务器中的实例配置文件进行语法检测,若检测成功,则可以通过nginx服务器对实例配置文件进行生效,从而生成对应的业务调度实例,若检测失败,则说明该实例配置文件的配置信息存在语法或格式错误无法进行加载,此时可以将检测失败对应的nginx服务器进程回滚,返回实例配置文件同步前的运行状态。
进一步地,在负载均衡集群中,当其中任意一个nginx服务器检测失败并对其进行进程回滚后,可以将失败状态码返回管控端,当nginx服务器检测成功并生效生成业务调度实例后,可以将成功状态码返回管控端,当管控端在接收到负载均衡集群中每一个nginx服务器返回的状态码时,可以根据状态码将对应的nginx服务器的运行状态记录到数据库。
在一个实施例中,方法还可以包括:
S150:在内网负载均衡调度过程中,若存在任意一个nginx服务器实例配置文件同步失败或生效失败,则将该nginx服务器的进程回滚,返回实例配置文件同步前的运行状态。
在本实施例中,在内网负载均衡调度过程中,如果存在任意一个nginx服务器实例配置文件同步失败或生效失败无法往下执行,则可以将该nginx服务器的进程回滚,返回所述实例配置文件同步前的运行状态,同时将失败状态码返回管控端,以便管控端将该nginx服务器的运行状态记录到数据库。
为了更好地对上述实施例中实例配置文件同步过程进行解释,下面将通过图3来进一步说明,如图3所示,图3为本申请实施例提供的nginx服务器中实例配置文件的同步流程示意图。
图3中,在管控端生成实例配置文件后,可以将该实例配置文件同步至负载均衡集群中每一个nginx服务器,若同步失败,则将同步失败对应的nginx服务器进程回滚,若同步成功,则继续校验同步至nginx服务器中的实例配置文件的配置信息,若校验失败,则将校验失败对应的nginx服务器进程回滚,若校验成功,则对校验成功的实例配置文件进行生效,若生效失败,则将生效失败对应的nginx服务器进程回滚,若生效成功,则将生效成功对应的nginx服务器的成功状态码返回至管控端,而负载均衡集群中进行回滚的nginx服务器,回滚后可以将失败状态码返回管控端,本申请通过这种方案可以避免在服务器不可用时导致请求失败无法进行故障转移的情况发生。
下面对本申请实施例提供的内网负载均衡调度装置进行描述,下文描述的内网负载均衡调度装置与上文描述的内网负载均衡调度方法可相互对应参照。
在一个实施例中,如图4所示,图4为本申请提供的一种内网负载均衡调度装置的结构示意图;本申请还提供了一种内网负载均衡调度装置,包括数据分析模块210、文件同步模块220、域名解析模块230和业务调度模块240,具体包括如下:
数据获取模块210,用于当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取配置文本的实例参数,将实例参数转换为nginx服务器可识别的实例配置文件。
文件同步模块220,用于将实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对实例配置文件进行加载,生成对应的业务调度实例;
域名解析模块230,用于获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及IP地址对应的调度信息,调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及请求服务器的机器标识;
业务调度模块240,用于依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及请求服务器的机器标识依次分配至负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到请求服务器。
上述实施例中,在内网中进行负载均衡调度时,若检测到内网中任意一个后端服务器接收用户上传的配置文本,则将该后端服务器作为请求服务器,并提取该配置文本中包含的实例参数,以便将该实例参数转换为nginx服务器可识别的实例配置文件,这样可以规范实例配置文件的格式,避免配置文本中存在字符串书写格式不规范或语法错误等问题影响服务器对实例配置文件的加载,同时简化配置流程,接着可以将该实例配置文件同步至负载均衡集群中各个nginx服务器上,以触发每一nginx服务器对实例配置文件进行加载,生成业务调度实例,然后可以通过解析该业务调度实例中每一域名得到对应的调度信息,该调度信息包括了待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及请求服务器的机器标识,以便根据各个调度信息从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及请求服务器的机器标识依次分配至负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到请求服务器,通过这种调度方式可以将内网内部各个业务的调用方式进行统一,同时解决负载均衡目标服务单点、发送故障时无法进行故障转移的问题,进而提高业务调度效率,减少调用时故障的产生。
在一个实施例中,数据获取模块210可以包括:
数据解析子模块,用于依据预设关键字段列表,对配置文本的配置信息进行解析,确定配置信息中的各个关键字段以及每一个关键字段对应的参数位置。
数据提取子模块,用于基于每一个参数位置,对配置信息进行切割,得到配置文本中的各个参数,形成实例参数。
在一个实施例中,数据获取模块210还可以包括:
数据记录子模块,用于依据预设关键字段列表,将实例参数中每一个参数写入至数据库对应的数据库表中,该数据库表为以预设关键字段列表中的每一个关键字段为表头的表单。
文件转换子模块,用于通过接口将数据库表的实例参数中每一个参数以数据转换格式输出,得到数据转换文件,并将数据转换文件转换为nginx服务器可识别的实例配置文件。
在一个实施例中,文件转换子模块可以包括:
变量定义单元,用于获取自定义模板,该自定义模板为包含多个变量的配置文件,任意一个变量均定义一个与该变量对应的参数。
文件转换单元,用于依据变量与参数的对应关系,将数据转换文件中的每一个参数写入到所述自定义模板中,生成nginx服务器可识别的实例配置文件。
在一个实施例中,文件同步模块220可以包括:
密钥生成子模块,用于通过SSH协议建立与负载均衡集群中每一个nginx服务器之间的加密连接,生成SSH密钥。
文件拷贝子模块,用于利用每一SSH密钥登录对应的nginx服务器,并将实例配置文件拷贝至负载均衡集群中对应的nginx服务器。
在一个实施例中,文件同步模块220还可以包括:
语法检测子模块,用于基于nginx语法对每一个nginx服务器中的实例配置文件进行语法检测。
文件生效子模块,用于若检测成功,则通过nginx服务器对实例配置文件进行生效,生成对应的业务调度实例。
进程回滚子模块,用于若检测失败,则将对应的nginx服务器进程回滚,返回实例配置文件同步前的运行状态。
在一个实施例中,装置还可以包括:
进程回滚模块,用于在内网负载均衡调度过程中,若存在任意一个nginx服务器实例配置文件同步失败或生效失败,则将该nginx服务器的进程回滚,返回实例配置文件同步前的运行状态。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任意一个项所述内网负载均衡调度方法的步骤。
在一个实施例中,本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任意一个项所述内网负载均衡调度方法的步骤。
示意性地,如图5所示,图5为本申请实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图5,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的内网负载均衡调度方法。
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(I/O)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种内网负载均衡调度方法,其特征在于,所述方法包括:
当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取所述配置文本的实例参数,将所述实例参数转换为nginx服务器可识别的实例配置文件;
将所述实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例;
获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及所述IP地址对应的调度信息,所述调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及所述请求服务器的机器标识;
依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及所述请求服务器的机器标识依次分配至所述负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到所述请求服务器。
2.根据权利要求1所述的内网负载均衡调度方法,其特征在于,所述提取所述配置文本的实例参数,包括:
依据预设关键字段列表,对所述配置文本的配置信息进行解析,确定所述配置信息中的各个关键字段以及每一个关键字段对应的参数位置;
基于每一个参数位置,对所述配置信息进行切割,得到所述配置文本中的各个参数,形成实例参数。
3.根据权利要求1所述的内网负载均衡调度方法,其特征在于,所述将所述实例参数转换为nginx服务器可识别的实例配置文件,包括:
依据预设关键字段列表,将所述实例参数中每一个参数写入至数据库对应的数据库表中,所述数据库表为以所述预设关键字段列表中的每一个关键字段为表头的表单;
通过接口将所述数据库表的所述实例参数中每一个参数以数据转换格式输出,得到数据转换文件,并将所述数据转换文件转换为nginx服务器可识别的实例配置文件。
4.根据权利要求3所述的内网负载均衡调度方法,其特征在于,所述将所述数据转换文件转换为nginx服务器可识别的实例配置文件,包括:
获取自定义模板,所述自定义模板为包含多个变量的配置文件,任意一个变量均定义一个与该变量对应的参数;
依据变量与参数的对应关系,将所述数据转换文件中的每一个参数写入到所述自定义模板中,生成nginx服务器可识别的实例配置文件。
5.根据权利要求1所述的内网负载均衡调度方法,其特征在于,所述将所述实例配置文件同步至负载均衡集群中各个nginx服务器,包括:
通过SSH协议建立与负载均衡集群中每一个nginx服务器之间的加密连接,生成SSH密钥;
利用每一个SSH密钥登录对应的nginx服务器,并将所述实例配置文件拷贝至所述负载均衡集群中对应的nginx服务器。
6.根据权利要求1所述的内网负载均衡调度方法,其特征在于,所述触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例,包括:
基于nginx语法对每一个nginx服务器中的实例配置文件进行语法检测;
若检测成功,则通过nginx服务器对所述实例配置文件进行生效,生成对应的业务调度实例;
若检测失败,则将对应的nginx服务器进程回滚,返回所述实例配置文件同步前的运行状态。
7.根据权利要求1所述的内网负载均衡调度方法,其特征在于,所述方法还包括:
在内网负载均衡调度过程中,若存在任意一个nginx服务器实例配置文件同步失败或生效失败,则将该nginx服务器的进程回滚,返回所述实例配置文件同步前的运行状态。
8.一种内网负载均衡调度装置,其特征在于,包括:
数据获取模块,用于当检测到内网中任意一个后端服务器接收用户上传的配置文本时,将该后端服务器作为请求服务器,并提取所述配置文本的实例参数,将所述实例参数转换为nginx服务器可识别的实例配置文件;
文件同步模块,用于将所述实例配置文件同步至负载均衡集群中各个nginx服务器,并触发每一个nginx服务器对所述实例配置文件进行加载,生成对应的业务调度实例;
域名解析模块,用于获取任意一个nginx服务器生成的业务调度实例的所有域名,并对每一个域名进行解析,得到各个域名的IP地址,以及所述IP地址对应的调度信息,所述调度信息包括待获取的目标业务的业务标识、待调度的目标服务器的机器标识以及所述请求服务器的机器标识;
业务调度模块,用于依据各个调度信息中目标业务的业务标识、待调度的目标服务器的机器标识,从对应的目标服务器中获取对应的目标业务,并将获取到的多个目标业务以及所述请求服务器的机器标识依次分配至所述负载均衡集群中的各个nginx服务器上,通过各个nginx服务器分别将对应目标业务发送到所述请求服务器。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任意一个项所述内网负载均衡调度方法的步骤。
10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至7中任意一个项所述内网负载均衡调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211689238.0A CN116016534A (zh) | 2022-12-27 | 2022-12-27 | 内网负载均衡调度方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211689238.0A CN116016534A (zh) | 2022-12-27 | 2022-12-27 | 内网负载均衡调度方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016534A true CN116016534A (zh) | 2023-04-25 |
Family
ID=86024254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211689238.0A Pending CN116016534A (zh) | 2022-12-27 | 2022-12-27 | 内网负载均衡调度方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016534A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800756A (zh) * | 2023-08-22 | 2023-09-22 | 三未信安科技股份有限公司 | 大规模密码设备集群的全局调度方法、系统、设备及介质 |
-
2022
- 2022-12-27 CN CN202211689238.0A patent/CN116016534A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800756A (zh) * | 2023-08-22 | 2023-09-22 | 三未信安科技股份有限公司 | 大规模密码设备集群的全局调度方法、系统、设备及介质 |
CN116800756B (zh) * | 2023-08-22 | 2023-12-01 | 三未信安科技股份有限公司 | 大规模密码设备集群的全局调度方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11940965B2 (en) | Data migration method and apparatus | |
CN111552676A (zh) | 基于区块链的存证方法、装置、设备及介质 | |
WO2017097123A1 (zh) | 访问请求转换的方法和装置 | |
CN105162878A (zh) | 基于分布式存储的文件分发系统及方法 | |
CN106657216B (zh) | 序列号生成方法和装置 | |
US7979521B2 (en) | Method and system for relocating and using enterprise management tools in a service provider model | |
CN109600410B (zh) | 数据存储系统以及方法 | |
CN101707543A (zh) | 一种支持多任务类型的企业媒体总线系统和方法 | |
CN109815294B (zh) | 一种无主节点分布并行数据存储方法和系统 | |
CN111552568B (zh) | 云服务调用方法和装置 | |
CN112583952B (zh) | 重定向调度处理方法、装置、系统及相关设备、存储介质 | |
CN116016534A (zh) | 内网负载均衡调度方法、装置、存储介质及计算机设备 | |
CN111327428B (zh) | 图像信息处理方法、系统及电子设备 | |
JP2016144186A (ja) | 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム | |
CN116520815B (zh) | 一种远程诊断方法、装置、计算机设备和存储介质 | |
CN113315848A (zh) | 访问控制方法、装置及设备 | |
CN111130905A (zh) | 基于分布式集群的日志级别动态调整方法 | |
US20230344520A1 (en) | Intelligent Monitoring and Repair of Network Services Using Log Feeds Provided Over Li-Fi Networks | |
CN115174592A (zh) | 企业级数据请求转发系统及方法 | |
CN114172821A (zh) | 服务状态的同步方法、装置及服务器 | |
CN107528797B (zh) | 数据处理方法、装置及系统 | |
CN113300867B (zh) | Cdn系统、信息处理方法及装置、cdn节点 | |
CN111490886B (zh) | 一种网络数据处理方法及系统 | |
CN115022343B (zh) | 对象迁移方法、装置及设备 | |
CN114448931B (zh) | 一种基于mlag组网环境的域名解析方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |