CN117251285A - 配置信息的动态加载方法、装置、设备及存储介质 - Google Patents
配置信息的动态加载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117251285A CN117251285A CN202311250542.XA CN202311250542A CN117251285A CN 117251285 A CN117251285 A CN 117251285A CN 202311250542 A CN202311250542 A CN 202311250542A CN 117251285 A CN117251285 A CN 117251285A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- configuration
- target component
- updated
- update
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000008859 change Effects 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims 3
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000009434 installation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种配置信息的动态加载方法、装置、设备及存储介质。该方法包括:当接收到更新配置信息,获取更新配置信息对应的目标组件;若更新配置信息成功通过冲突校验,则将更新配置信息写入到预设数据库,并在预设数据库的目标频道发布配置变更消息;当在目标频道中成功监听到配置变更消息,从预设数据库中读取更新配置信息,并通过目标组件重加载更新配置信息,以实现目标组件的配置更新。本实施例的技术方案,通过采用预设数据库对配置信息进行长期存储,并将配置接收和配置下发进行操作解耦,可以实现对负载均衡器配置信息的动态加载,可以避免内存失效导致的配置信息丢失,可以支持配置更新的并发操作。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种配置信息的动态加载方法、装置、设备及存储介质。
背景技术
随着互联网应用规模的不断扩大,需要将多台服务器组建成集群,以共同提供业务服务。在服务器集群中,为了提升业务响应速度,通常采用负载均衡技术将业务流量分配给各台服务器。在存在业务流量的突增或者突降时,通常需要临时进行服务实例数的扩容或者缩容操作,此时,需要在确保业务不中断的情况下,进行负载均衡器的动态配置。
目前,现有的负载均衡器的动态配置方法,通常采用在负载均衡器中新增ngx_http_dyups_module模块,进而通过相关应用程序编程接口,动态添加配置信息,并可以主动将配置推送给负载均衡器,以实现配置更新。然而,在现有技术中,配置信息存储在负载均衡器中worker进程的内部缓存,当内存信息失效时会丢失所有配置信息;其次,当存在多个worker进程并发进行配置更新时,可能会出现部分进程更新失败的情况。
发明内容
本发明提供了一种配置信息的动态加载方法、装置、设备及存储介质,可以实现对负载均衡器配置信息的动态加载,可以实现对配置信息的长期存储,可以避免内存失效导致的配置信息丢失,可以支持配置更新的并发操作。
根据本发明的一方面,提供了一种配置信息的动态加载方法,应用于负载均衡服务器,包括:
当接收到更新配置信息,获取所述更新配置信息对应的目标组件;
若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息;
当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
可选的,所述更新配置信息成功通过冲突校验,包括:
从所述预设数据库中读取所述目标组件对应的当前配置信息,若所述更新配置信息与所述当前配置信息之间不满足预设冲突检测条件,则确定所述更新配置信息成功通过冲突校验。
采用上述技术方案,可以实现对配置信息的提前校验,避免配置信息冲突设置导致的***错误。
可选的,将所述更新配置信息写入到预设数据库,包括:
判断所述更新配置信息与所述当前配置信息是否相同;
若否,则在所述预设数据库中,采用所述更新配置信息对所述当前配置信息进行替换存储。
采用上述技术方案,可以避免相同配置信息的重复设置,可以避免配置信息的无效更新。
可选的,通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新,包括:
根据所述更新配置信息以及预设文件生成规则,生成更新配置文件,并通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新。
采用上述技术方案,可以实现更新配置信息对应的配置文件的自动生成,可以提升配置信息的动态加载效率。
可选的,通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新,包括:
获取所述目标组件对应的配置文件路径;
在所述配置文件路径下,采用所述更新配置文件替换当前配置信息对应的当前配置文件;
通过所述目标组件重加载所述配置文件路径下的所述更新配置文件,以实现所述目标组件的配置更新。
采用上述技术方案,可以实现配置文件的自动替换和加载,可以进一步提升配置信息的动态加载效率。
可选的,目标组件包括负载均衡器和/或保活模块。
采用上述技术方案,可以实现负载均衡服务器中不同组件的配置信息的动态加载,可以扩大配置信息动态加载的适用范围。
可选的,在通过保活模块重加载所述更新配置信息,以实现保活模块的配置更新之后,还包括:
通过当前保活模块检测当前负载均衡器的运行状态;
若检测到当前负载均衡器的运行状态存在异常,则关闭所述当前负载均衡器,并将预设虚拟互联网协议地址分配至备用负载均衡服务器的备用负载均衡器,以确保负载均衡的高可用性。
采用上述技术方案,可以确保负载均衡服务器的负载均衡功能的高可用性,可以提升***稳定性。
根据本发明的另一方面,提供了一种配置信息的动态加载装置,应用于负载均衡服务器,包括:
配置信息接收模块,用于当接收到更新配置信息,获取所述更新配置信息对应的目标组件;
配置信息存储模块,用于若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息;
配置信息重加载模块,用于当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的配置信息的动态加载方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的配置信息的动态加载方法。
本发明实施例的技术方案,通过当接收到更新配置信息,获取更新配置信息对应的目标组件;若更新配置信息成功通过冲突校验,则将更新配置信息写入到预设数据库,并在预设数据库的目标频道发布配置变更消息;当在目标频道中成功监听到配置变更消息,从预设数据库中读取更新配置信息,并通过目标组件重加载更新配置信息,以实现目标组件的配置更新;通过采用预设数据库对配置信息进行长期存储,并将配置接收和配置下发进行操作解耦,可以实现对负载均衡器配置信息的动态加载,可以避免内存失效导致的配置信息丢失,可以支持配置更新的并发操作。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明实施例一提供的一种配置信息的动态加载方法的流程图;
图1B是根据本发明实施例一提供的一种负载均衡***的结构示意图;
图2A是根据本发明实施例二提供的一种配置信息的动态加载方法的流程图;
图2B是根据本发明实施例二提供的另一种配置信息的动态加载方法的流程示意图;
图3是根据本发明实施例三提供的一种配置信息的动态加载装置的结构示意图;
图4是实现本发明实施例的配置信息的动态加载方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1A为本发明实施例一提供了一种配置信息的动态加载方法的流程图,本实施例可适用于对负载均衡服务器中各组件进行配置信息动态更新的情况,该方法可以由配置信息的动态加载装置来执行,该配置信息的动态加载装置可以采用硬件和/或软件的形式实现,该配置信息的动态加载装置可配置于电子设备中,典型的,电子设备可以是负载均衡服务器。如图1A所示,该方法包括:
S110、当接收到更新配置信息,获取所述更新配置信息对应的目标组件。
在本实施例中,可以通过预部署的配置信息接收模块,例如,应用程序接口(Application Programming Interface,API),接收软件定义网络控制器(SoftwareDefined Network Controller,SDNC)下发的更新配置信息。
需要说明的是,SDNC在向负载均衡服务器下发更新配置信息时,可以针对不同的组件,分别下发对应的更新配置信息;进一步的,针对组件的不同功能模块,也可以分别下发对应的更新配置信息。在本实施例中,对更新配置信息的数据结构可以不作具体限定。
其中,目标组件可以包括负载均衡器Nginx和/或保活模块keepalived。负载均衡器,可以包括***、健康检查模块、证书模块、后端服务器组模块、后端服务器模块、转发规则模块等功能模块。
在一个具体的例子中,在通过API接口接收到更新配置信息之后,可以基于预设的通信协议,对更新配置信息进行内容解析,并从内容解析结果中获取当前的更新配置信息对应的组件标识,从而确定目标组件。
S120、若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息。
具体的,在成功接收到更新配置信息之后,可以基于预设的冲突检测规则,判断更新配置信息对应的新配置与原有配置是否冲突,例如,是否存在一个接口的重复分配、配置缓存超出最大缓存等。若检测到不存在冲突,则确定当前的更新配置信息成功通过冲突校验,并可以将更新配置信息存储到预设数据库中。而若检测到存在冲突,则可以将更新配置信息直接丢弃,并进行异常告警。
其中,预设数据库,可以是键值型数据库,例如,可以是Redis数据库。在本实施例中,在将更新配置信息写入到预设数据库时,可以采用更新配置信息对目标组件对应的当前配置信息进行替换存储;或者,也可以同时保留更新配置信息和当前配置信息,并采用不同的版本标识对两者进行区分。
具体的,在对更新配置信息进行存储时,可以建立目标组件对应的组件标识与更新配置信息之间的映射关系,并将该映射关系存储到预设数据库。其次,预设数据库还可以支持基于组件标识进行匹配配置信息的查找。
进一步的,预设数据库在成功完成对更新配置信息的存储之后,可以基于订阅与发布功能,向目标频道发送配置变更信息,以通知该频道的订阅者目标组件的配置信息已经发生了改变。其中,配置变更信息,可以包括组件标识、信息变更标识等内容。在本实施例中,可以通过配置信息接收模块预先订阅Redis数据库的目标频道,并通过预设的专用进程实时监听频道消息。
S130、当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
具体的,当配置信息接收模块在目标频道中,监听到目标组件对应的配置变更消息,可以基于目标组件对应的组件标识,从预设数据库中读取该更新配置信息。然后,可以通过目标组件中预设的配置加载脚本程序自动加载该更新配置信息,并进行相应的配置变更,从而实现目标组件的配置更新;或者,可以首先根据该更新配置信息生成更新配置文件,并通过自动加载该更新配置文件,以实现配置更新。
在本实施例中,通过采用配置信息接收模块进行配置信息的接收、写入和读取,以及预设数据库的订阅与发布功能,成功实现了配置接收与配置下发的操作解耦,从而使得在存在多个worker进程并发进行配置更新时,各进程均可成功获取更新配置信息,从而可以确保各进程的一致性。
本发明实施例的技术方案,通过当接收到更新配置信息,获取更新配置信息对应的目标组件;若更新配置信息成功通过冲突校验,则将更新配置信息写入到预设数据库,并在预设数据库的目标频道发布配置变更消息;当在目标频道中成功监听到配置变更消息,从预设数据库中读取更新配置信息,并通过目标组件重加载更新配置信息,以实现目标组件的配置更新;通过采用预设数据库对配置信息进行长期存储,并将配置接收和配置下发进行操作解耦,可以实现对负载均衡器配置信息的动态加载,可以避免内存失效导致的配置信息丢失,可以支持配置更新的并发操作。
在本实施例的一个可选的实施方式中,所述更新配置信息成功通过冲突校验,可以包括:
从所述预设数据库中读取所述目标组件对应的当前配置信息,若所述更新配置信息与所述当前配置信息之间不满足预设冲突检测条件,则确定所述更新配置信息成功通过冲突校验。
其中,当前配置信息,可以是目标组件当前所使用的配置信息。预设冲突检测条件,可以是预设的用于判断两个配置信息之间是否存在配置冲突的条件信息,例如,可以是更新配置信息与当前配置信息之间满足至少一条预设的冲突规则。
在本实施例中,在进行冲突校验时,可以首先根据目标组件对应的组件标识,从预设数据库中读取目标组件对应的当前配置信息;然后,判断更新配置信息与当前配置信息之间是否满足预设的冲突检测条件。若检测到满足预设冲突检测条件,则可以确定存在配置冲突,可以直接丢弃该更新配置信息。而若检测到不满足预设冲突检测条件,则可以确定成功通过冲突校验,可以进一步将更新配置信息存储到预设数据库中。
在本实施例的另一个可选的实施方式中,将所述更新配置信息写入到预设数据库,可以包括:
判断所述更新配置信息与所述当前配置信息是否相同;
若否,则在所述预设数据库中,采用所述更新配置信息对所述当前配置信息进行替换存储。
具体的,在将更新配置信息存储到预设数据库时,可以首先将更新配置信息与当前配置信息进行逐项的内容比对,以判断两者是否相同。当检测到两者内容完全相同时,可以确定SDNC当前下发的更新配置信息存在异常,此时可以选择将更新配置信息进行直接丢弃,仍保留原始的当前配置信息,并无需进行后续的配置信息重加载操作。而当检测到两者内容不相同时,则可以将当前配置信息从预设数据库中删除,并将更新配置信息存储至其所在位置,以实现对当前配置信息的替换存储。
在本实施例的另一个可选的实施方式中,在通过保活模块重加载所述更新配置信息,以实现保活模块的配置更新之后,还可以包括:
通过当前保活模块检测当前负载均衡器的运行状态;
若检测到当前负载均衡器的运行状态存在异常,则关闭所述当前负载均衡器,并将预设虚拟互联网协议地址分配至备用负载均衡服务器的备用负载均衡器,以确保负载均衡的高可用性。
在一个具体的例子中,配置信息的动态加载方法所应用的负载均衡***的结构可以如图1B所示。其中,负载均衡***可以由一个主负载均衡服务器01(主节点)和一个备用负载均衡服务器02(备用节点)组成,每个负载均衡服务器包括信息接收模块Agent、Redis数据库、负载均衡器Nginx和保活模块Keepalived,不同负载均衡服务器中的保活模块之间存在通信连接。
其中,Agent用于提供相关的Rest API接口,以接收SDNC下发的配置信息,并可以在完成对配置信息的校验后,将配置信息存储到Redis数据库,以及在从订阅的Redis频道中监听到配置变更消息时,从Redis数据库中读取配置信息,并将配置信息发送到Nginx或者Keepalived。Redis数据库用于支持配置信息的写入和读取,以及在成功存储后,基于订阅和发布功能,向指定频道发送配置变更信息。
Nginx用于重加载配置信息,以完成配置更新,以及基于配置信息提供主机间的负载均衡。Keepalived用于为Nginx提供高可用。具体的,Keepalived可以通过定期发送心跳指令等,实时检测对应Nginx的运行状态。各Nginx具有相同的配置信息,并可以同步进行配置更新。
在负载均衡***中,各Nginx共享一个预设的虚拟互联网协议地址(VirtualInternet Protocol,VIP),通过分配VIP可以将业务请求分配给合适的Nginx。在正常情况下,由主节点的Nginx使用该虚拟互联网协议地址,而当主节点的Nginx出现异常时,例如,宕机、对心跳指令无回复等,其keepalived会将VIP漂移给备用节点,此时备用节点的Nginx将使用该VIP继续为用户提供服务,此过程用户无感知,业务不会中断,以确保负载均衡服务的高可用性。
实施例二
图2A为本发明实施例二提供的一种配置信息的动态加载方法的流程图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施方式结合。如图2A所示,该方法包括:
S210、当接收到更新配置信息,获取所述更新配置信息对应的目标组件。
S220、从预设数据库中读取所述目标组件对应的当前配置信息,若所述更新配置信息与所述当前配置信息之间不满足预设冲突检测条件,则确定所述更新配置信息成功通过冲突校验。
S230、若确定所述更新配置信息与所述当前配置信息不相同,则在所述预设数据库中,采用所述更新配置信息对所述当前配置信息进行替换存储,并在所述预设数据库的目标频道发布配置变更消息。
S240、当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息。
S250、根据所述更新配置信息以及预设文件生成规则,生成更新配置文件,并通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新。
其中,预设文件生成规则,可以是预设的配置文件的语法规则,例如,配置文件由指令和指令块组成、每条指令以分号结尾、指令与参数间以空格符号分割等。可选的,针对不同类型的组件,可以预先设置通用的文件生成规则,也可以分别预先设置各自对应的文件生成规则,例如,预设Nginx文件生成规则、预设keepalived文件生成规则等。
在本实施例中,配置信息接收模块在从预设数据库中读取到更新配置信息之后,可以根据预设的文件生成规则,将当前的更新配置信息,转换为相应的更新配置文件。然后,可以执行目标组件中预设的配置加载脚本程序,以直接根据该更新配置文件进行配置更新;或者,可以先将更新配置文件存储到目标组件的配置文件目录下,并执行预设脚本,以自动读取该更新配置文件,并根据该更新配置文件进行配置信息变更。
可选的,根据更新配置信息以及预设文件生成规则,生成更新配置文件,可以包括:获取目标组件对应的目标文件生成规则,根据更新配置信息以及目标文件生成规则,生成目标组件对应的更新配置文件。
在本实施例中,通过对配置信息进行持久化存储,并将配置接收和下发进行操作解耦,实现了对Nginx配置信息的灵活配置,且避免了繁琐的运维操作,即使Nginx宕机重启也能按原有配置参数继续工作;其次,实现了用户无感知的配置下发,Nginx无需重启即可实现配置信息的动态加载,确保了负载均衡业务的连续性。
本发明实施例的技术方案,若更新配置信息与当前配置信息之间不满足预设冲突检测条件,则确定更新配置信息成功通过冲突校验;若确定更新配置信息与当前配置信息不相同,则在预设数据库中,采用更新配置信息对当前配置信息进行替换存储;其次,在从预设数据库中读取更新配置信息之后,根据更新配置信息以及预设文件生成规则,生成更新配置文件,并通过目标组件重加载更新配置文件,以实现目标组件的配置更新;通过对更新配置信息提前进行冲突校验和相同校验,可以避免配置信息冲突设置导致的***错误,可以避免配置信息的无效更新;而且,通过生成更新配置信息对应的更新配置文件,可以实现对更新配置信息的本地存储,当目标组件故障重启时,可以直接从本地加载更新后的配置信息,可以提升组件重启时的配置加载效率。
在本实施例的一个可选的实施方式中,通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新,可以包括:
获取所述目标组件对应的配置文件路径;
在所述配置文件路径下,采用所述更新配置文件替换当前配置信息对应的当前配置文件;
通过所述目标组件重加载所述配置文件路径下的所述更新配置文件,以实现所述目标组件的配置更新。
其中,配置文件路径,可以是目标组件对应的配置文件匹配的访问路径;在本实施例中,可以根据目标组件在负载均衡服务器中的安装位置,自动确定其对应的配置文件路径,例如,安装文件夹下预设文件名的文件对应的文件路径;或者,在完成目标组件的安装后,可以将其对应的配置文件路径存储到预设数据库,由此,后续可以从预设数据库中,根据目标组件对应的组件标识,查找得到目标组件对应的配置文件路径。
在一个具体的例子中,在确定目标组件对应的配置文件路径之后,可以将该文件路径下原有的当前配置文件删除,并可以将更新配置文件存储到该配置文件路径下,以实现配置文件的替换和更新。最后,可以执行目标组件中预设的配置加载脚本程序,以自动读取该路径下的更新配置文件,从而实现对目标组件的配置更新。
在本实施例的一个具体的实施方式中,配置信息的动态加载方法的流程可以如图2B所示。首先,通过Agent接收SDNC下发的更新配置信息,并对该更新配置信息进行配置冲突校验;当检测到该更新配置信息成功通过配置冲突校验,则将该更新配置信息存储到Redis数据库,并由Redis数据库向预设的频道channel发布配置变更消息。
然后,当Agent在channel中成功监听到配置变更消息时,可以从Redis数据库中读取更新配置信息,并确定该更新配置信息对应的组件。当确定组件为Nginx,可以根据该更新配置信息,以及Nginx对应的文件生成规则,生成Nginx配置文件;或者,当确定组件为keepalived时,可以根据该更新配置信息,以及keepalived对应的文件生成规则,生成keepalived配置文件。
最后,可以执行预设的配置文件加载脚本,以重加载reload生成的Nginx配置文件或者keepalived配置文件,以实现配置信息的动态加载。
实施例三
图3为本发明实施例三提供的一种配置信息的动态加载装置的结构示意图。如图3所示,该装置应用于负载均衡服务器,可以包括:配置信息接收模块310、配置信息存储模块320和配置信息重加载模块330;其中,
配置信息接收模块310,用于当接收到更新配置信息,获取所述更新配置信息对应的目标组件;
配置信息存储模块320,用于若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息;
配置信息重加载模块330,用于当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
本发明实施例的技术方案,通过当接收到更新配置信息,获取更新配置信息对应的目标组件;若更新配置信息成功通过冲突校验,则将更新配置信息写入到预设数据库,并在预设数据库的目标频道发布配置变更消息;当在目标频道中成功监听到配置变更消息,从预设数据库中读取更新配置信息,并通过目标组件重加载更新配置信息,以实现目标组件的配置更新;通过采用预设数据库对配置信息进行长期存储,并将配置接收和配置下发进行操作解耦,可以实现对负载均衡器配置信息的动态加载,可以避免内存失效导致的配置信息丢失,可以支持配置更新的并发操作。
可选的,配置信息存储模块320,具体用于从所述预设数据库中读取所述目标组件对应的当前配置信息,若所述更新配置信息与所述当前配置信息之间不满足预设冲突检测条件,则确定所述更新配置信息成功通过冲突校验。
可选的,配置信息存储模块320,具体用于判断所述更新配置信息与所述当前配置信息是否相同;
若否,则在所述预设数据库中,采用所述更新配置信息对所述当前配置信息进行替换存储。
可选的,配置信息重加载模块330,具体用于根据所述更新配置信息以及预设文件生成规则,生成更新配置文件,并通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新。
可选的,配置信息重加载模块330,具体用于获取所述目标组件对应的配置文件路径;
在所述配置文件路径下,采用所述更新配置文件替换当前配置信息对应的当前配置文件;
通过所述目标组件重加载所述配置文件路径下的所述更新配置文件,以实现所述目标组件的配置更新。
可选的,目标组件包括负载均衡器和/或保活模块。
可选的,配置信息的动态加载装置,还包括:
运行状态检测模块,用于通过当前保活模块检测当前负载均衡器的运行状态;
地址分配模块,用于若检测到当前负载均衡器的运行状态存在异常,则关闭所述当前负载均衡器,并将预设虚拟互联网协议地址分配至备用负载均衡服务器的备用负载均衡器,以确保负载均衡的高可用性。
本发明实施例所提供的配置信息的动态加载装置可执行本发明任意实施例所提供的配置信息的动态加载方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
电子设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如配置信息的动态加载方法。
在一些实施例中,配置信息的动态加载方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的配置信息的动态加载方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行配置信息的动态加载方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种配置信息的动态加载方法,其特征在于,应用于负载均衡服务器,包括:
当接收到更新配置信息,获取所述更新配置信息对应的目标组件;
若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息;
当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
2.根据权利要求1所述的方法,其特征在于,所述更新配置信息成功通过冲突校验,包括:
从所述预设数据库中读取所述目标组件对应的当前配置信息,若所述更新配置信息与所述当前配置信息之间不满足预设冲突检测条件,则确定所述更新配置信息成功通过冲突校验。
3.根据权利要求2所述的方法,其特征在于,将所述更新配置信息写入到预设数据库,包括:
判断所述更新配置信息与所述当前配置信息是否相同;
若否,则在所述预设数据库中,采用所述更新配置信息对所述当前配置信息进行替换存储。
4.根据权利要求1所述的方法,其特征在于,通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新,包括:
根据所述更新配置信息以及预设文件生成规则,生成更新配置文件,并通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新。
5.根据权利要求4所述的方法,其特征在于,通过所述目标组件重加载所述更新配置文件,以实现所述目标组件的配置更新,包括:
获取所述目标组件对应的配置文件路径;
在所述配置文件路径下,采用所述更新配置文件替换当前配置信息对应的当前配置文件;
通过所述目标组件重加载所述配置文件路径下的所述更新配置文件,以实现所述目标组件的配置更新。
6.根据权利要求1-5中任一项所述的方法,其特征在于,目标组件包括负载均衡器和/或保活模块。
7.根据权利要求6所述的方法,其特征在于,在通过保活模块重加载所述更新配置信息,以实现保活模块的配置更新之后,还包括:
通过当前保活模块检测当前负载均衡器的运行状态;
若检测到当前负载均衡器的运行状态存在异常,则关闭所述当前负载均衡器,并将预设虚拟互联网协议地址分配至备用负载均衡服务器的备用负载均衡器,以确保负载均衡的高可用性。
8.一种配置信息的动态加载装置,其特征在于,应用于负载均衡服务器,包括:
配置信息接收模块,用于当接收到更新配置信息,获取所述更新配置信息对应的目标组件;
配置信息存储模块,用于若所述更新配置信息成功通过冲突校验,则将所述更新配置信息写入到预设数据库,并在所述预设数据库的目标频道发布配置变更消息;
配置信息重加载模块,用于当在所述目标频道中成功监听到所述配置变更消息,从所述预设数据库中读取所述更新配置信息,并通过所述目标组件重加载所述更新配置信息,以实现所述目标组件的配置更新。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的配置信息的动态加载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的配置信息的动态加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311250542.XA CN117251285A (zh) | 2023-09-26 | 2023-09-26 | 配置信息的动态加载方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311250542.XA CN117251285A (zh) | 2023-09-26 | 2023-09-26 | 配置信息的动态加载方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117251285A true CN117251285A (zh) | 2023-12-19 |
Family
ID=89128988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311250542.XA Pending CN117251285A (zh) | 2023-09-26 | 2023-09-26 | 配置信息的动态加载方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251285A (zh) |
-
2023
- 2023-09-26 CN CN202311250542.XA patent/CN117251285A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109842651B (zh) | 一种业务不间断的负载均衡方法和*** | |
CN108696581B (zh) | 分布式信息的缓存方法、装置、计算机设备以及存储介质 | |
CN113656147B (zh) | 一种集群部署方法、装置、设备及存储介质 | |
CN109561151B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN109783151B (zh) | 规则变更的方法和装置 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN115640110B (zh) | 分布式云计算***调度方法和装置 | |
CN115580645A (zh) | 一种服务切换方法、装置、电子设备和存储介质 | |
CN114389969A (zh) | 客户端的测试方法、装置、电子设备和存储介质 | |
CN117725115A (zh) | 一种数据库序列处理方法、装置、设备以及存储介质 | |
CN117435569A (zh) | 缓存***动态扩容方法、装置、设备、介质和程序产品 | |
CN116545905A (zh) | 一种服务健康检测方法、装置、电子设备及存储介质 | |
CN113360689B (zh) | 图像检索***、方法、相关装置及计算机程序产品 | |
CN113986135B (zh) | 处理请求的方法、装置、设备以及存储介质 | |
CN117251285A (zh) | 配置信息的动态加载方法、装置、设备及存储介质 | |
CN113468140B (zh) | 数据迁移处理方法、电子设备及计算机可读存储介质 | |
CN114443057A (zh) | 对话模型的部署和对话方法、装置、电子设备及存储介质 | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113747423A (zh) | 云手机状态同步方法、装置、设备、存储介质及程序产品 | |
CN113760469A (zh) | 分布式计算的方法和装置 | |
CN115665245A (zh) | 一种本地缓存刷新方法、装置、电子设备及存储介质 | |
CN115174447B (zh) | 一种网络通信方法、装置、***、设备及存储介质 | |
CN113595870B (zh) | 推送消息的处理方法、装置、电子设备及存储介质 | |
CN113596172B (zh) | 分布式集群中节点更新方法和装置 | |
CN114615273B (zh) | 基于负载均衡***的数据发送方法、装置和设备 |
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 |