CN114138371B - 配置动态加载方法、装置及计算机设备、存储介质 - Google Patents
配置动态加载方法、装置及计算机设备、存储介质 Download PDFInfo
- Publication number
- CN114138371B CN114138371B CN202111476996.XA CN202111476996A CN114138371B CN 114138371 B CN114138371 B CN 114138371B CN 202111476996 A CN202111476996 A CN 202111476996A CN 114138371 B CN114138371 B CN 114138371B
- Authority
- CN
- China
- Prior art keywords
- module
- configuration
- management process
- business process
- name
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 315
- 230000008569 process Effects 0.000 claims abstract description 286
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 79
- 238000012550 audit Methods 0.000 description 11
- 230000007717 exclusion Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种配置动态加载方法、装置及计算机设备、存储介质。其中,一种配置动态加载方法包括:启动业务进程和管理进程,所述业务进程用于响应目标报文的业务处理,所述管理进程用于响应所述目标报文的配置信息的加载;当基于所述管理进程接收到针对目标报文的配置加载指令时,基于所述管理进程从所述配置加载指令中获取待配置模块的名称;基于所述管理进程和所述待配置模块的名称执行所述待配置模块对应的配置加载函数,并得到所述待配置模块的配置信息等步骤。本申请至少能够实现在配置动态加载时,业务不中断,以及避免线程之间进行切换影响应用程序性能。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种配置动态加载方法、装置及计算机设备、存储介质。
背景技术
安全审计设备主要功能是从物理网卡抓取原始报文,然后解析原始报文并生成行为审计事件,达到行为审计的目的。安全审计设备在工作时,需要有相应的安全审计配置,比如抓取什么样的报文、哪些协议要做解析、每个协议的解析粒度怎么样。安全审计设备中的业务进程,在进程启动的时候会读取这些配置,并依据这些配置来工作。但是,这些配置不是一成不变的,用户在产品使用过程中,可能会不断的调整审计配置,每次的配置调整需要业务进程尽快地响应,即配置调整后,业务进程需要立即重新加载这些配置,并依据新的配置来工作。
为了实现配置重新加载,目前有两种方式,其中,第一种方式是重启应用程序,加载配置;第二种方式是应用程序以多线程模式运行,一个或者多个业务线程进行业务处置,一个线程进行配置管理,进行配置的动态加载,然而第一种方式会导致业务中断,第二种方式存在以下缺陷:1、应用程序以多线程运行,线程之间进行切换会影响应用程序性能;2、配置线程与业务线程之间进行配置切换时,需要加锁进行互斥操作。
发明内容
本申请实施例的目的在于提供一种配置动态加载方法、装置及计算机设备、存储介质,用以实现在配置动态加载时,业务不中断,以及用于避免线程之间进行切换影响应用程序性能。
为此,本申请第一方面公开一种配置动态加载方法,所述方法包括:
启动业务进程和管理进程,所述业务进程用于响应目标报文的业务处理,所述管理进程用于响应所述目标报文的配置信息的加载;
当基于所述管理进程接收到针对目标报文的配置加载指令时,基于所述管理进程从所述配置加载指令中获取待配置模块的名称;
基于所述管理进程和所述待配置模块的名称执行所述待配置模块对应的配置加载函数,并得到所述待配置模块的配置信息;
基于所述管理进程将所述待配置模块的配置信息存入共享存储空间中;
基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中,所述配置切换消息包括所述待配置模块的名称和所述共享存储空间的存储地址;
当检测到需要切换所述待配置模块的配置时,基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息。
在本申请第一方面中,作为一种可选的实施方式,在启动业务进程和管理进程之后,所述基于所述管理进程从所述配置加载指令中获取待配置模块的名称之前,所述方法还包括:
创建所述共享存储空间,其中,所述共享存储空间为所述业务进程与所述管理进程共享的存储空间;
以及,所述共享存储空间为内存空间。
在本申请第一方面中,作为一种可选的实施方式,所述启动业务进程和管理进程,包括:
将所述共享存储空间映射到所述管理进程的进程空间;
创建所述业务进程的所述消息队列,其中,所述业务进程的所述消息队列用于与所述管理进程进行数据传递;
将所述共享存储空间映射到所述业务进程的进程空间,并将所述消息队列所述业务进程绑定,其中,一个所述业务进程绑定一个所述消息队列。
在本申请第一方面中,作为一种可选的实施方式,在所述启动业务进程和管理进程之后,所述基于所述管理进程从所述配置加载指令中获取待配置模块的名称之前,所述方法还包括:
基于所述业务进程和所述业务进程的所述消息队列,向所述管理进程发送注册请求,其中,所述注册请求包括所述业务进程的身份标识、所述待配置模块的名称和所述待配置模块对应的所述配置加载函数;
基于所述管理进程,记录保存所述待配置模块的名称、所述待配置模块对应的所述配置加载函数、所述业务进程的身份标识。
在本申请第一方面中,作为一种可选的实施方式,在所述基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,所述方法还包括:
当检测到所述目标报文的数量小于第一预设阈值、或以采样方式处理所述目标报文的数量达到第三预设阈值或所述业务进程的持续处理时间大于等于第二预设阈值时,确定所述待配置模块需要切换配置。
在本申请第一方面中,作为一种可选的实施方式,在确定所述待配置模块需要切换配置之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,所述方法还包括:
基于所述业务进程,检测所述业务进程的消息队列是否存在所述配置切换消息,若存在则执行所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息。
在本申请第一方面中,作为一种可选的实施方式,在检测所述业务进程的消息队列是否存在所述配置切换消息之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,所述方法还包括:
判断所述业务进程的进程空间是否存在原始配置;
若所述业务进程存在所述原始配置,则释放所述业务进程的原始配置占用的存储空间。
本申请第二方面公开一种配置动态加载装置,所述装置包括:
启动模块,用于启动业务进程和管理进程,所述业务进程用于响应目标报文的业务处理,所述管理进程用于响应所述目标报文的配置信息的加载;
配置模块,用于当基于所述管理进程接收到针对目标报文的配置加载指令时,基于所述管理进程从所述配置加载指令中获取待配置模块的名称;
所述配置模块,还用于基于所述管理进程和所述待配置模块的名称执行所述待配置模块对应的配置加载函数,并得到所述待配置模块的配置信息;
所述配置模块,还基于所述管理进程将所述待配置模块的配置信息存入共享存储空间中;
所述配置模块,还用于基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中,所述配置切换消息包括所述待配置模块的名称和所述共享存储空间的存储地址;
所述配置模块,还用于当检测到需要切换所述待配置模块的配置时,基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息。
本申请第三方面公开一种计算机设备,所述计算机设备包括:
处理器;以及
存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行本申请第一方面的配置动态加载方法。
本申请第四方面公开一种存储介质所述存储介质存储有计算机程序,所述计算机程序被处理器执行本申请第一方面的配置动态加载方法。
与现有技术相比,本申请通过启动两个进程,能够将业务操作与配置操作分离开,即通过业务进程执行业务操作,而管理进程执行配置操作,这样一来,与现有技术中的第一种方式相比,本申请实施例就不需要使业务进程重新启动应用程序,从而不中断业务进程正在执行业务操作。另一方面,与现有技术中的第二种方式相比,本申请实施例的配置操作的执行不需要业务进程执行,进而不需要业务进程基于线程切换停止当前的业务操作而切换至执行配置操作,进而可以避免线程切换所导致的性能降低这个问题和避免线程切换所需加互斥锁,换而言之,与现有技术相比,本申请实施例在实现配置动态加载的前提下,一方面能够避免业务中断,另一方面能够不降应用程序性能且不需要加互斥锁。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例公开的一种配置动态加载方法的流程示意图;
图2是本申请实施例公开的管理进程与业务进程的通信关系示意图;
图3是本申请实施例公开的一种配置动态加载装置的结构示意图;
图4是本申请实施例公开的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一
请参阅图1,图1是本申请实施例公开的一种配置动态加载方法的流程示意图。如图1所示,本申请实施例的方法包括以下步骤:
101、启动业务进程和管理进程,业务进程用于响应目标报文的业务处理,管理进程用于响应目标报文的配置信息的加载;
102、当基于管理进程接收到针对目标报文的配置加载指令时,基于管理进程从配置加载指令中获取待配置模块的名称;
103、基于管理进程和待配置模块的名称执行待配置模块对应的配置加载函数,并得到待配置模块的配置信息;
104、基于管理进程将待配置模块的配置信息存入共享存储空间中;
105、基于管理进程生成配置切换消息并将配置切换消息发送至业务进程的消息队列中,配置切换消息包括待配置模块的名称和共享存储空间的存储地址;
106、当检测到需要切换待配置模块的配置时,基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息。
在本申请实施例中,对于步骤101,业务进程只用于执行与安全审计业务有关的指令,例如,业务进程基于DPDK技术从网卡中抓取原始报文(目标报文),然而对原始报文进协议分析,文件还原等工作。另一方面,启动的管理进程不执行与安全审计业务有关的指令,而是用于配置相关的指令。
在本申请实施例中,对于步骤102,针对目标报文的配置加载指令可以是外部指令,该外部指令用于通知目标报文中的模块M的配置需要更新。进一步地,可通过命令行或者WEB接口将外部指令发送给管理进程。
进一步地,在步骤102中,配置加载指令可以包括两个及两个以上的待配置模块的名称,例如,配置加载指令包括模块A和模块B。
在本申请实施例中,对于步骤103,当管理进程获取到待配置模块的名称,会根据待配置模块的名称查询待配置模块的配置加载函数,并在管理进程的进程空间内执行该待配置模块的配置加载函数,其中,待配置模块的配置加载函数含有预设的配置操作逻辑,用于获取待配置模块的配置信息。
在本申请实施例中,对于步骤104,由于管理进程与业务进程之间的资源无法互相访问,因此需要将管理进程获取的待配置模块的配置信息配置在一个业务进程也能够访问的存储空间中,即将待配置模块的配置信息存入共享存储空间中,这样一来,业务进程就能够获取管理进程通过配置加载函数获取的配置信息。
在步骤104中,可选地,待配置模块的配置信息可以是配置文件,例如采用xml标签生成的配置文件。
在本申请实施例中,对于步骤105、106,由于管理进程与业务进程之间的资源无法互相访问,因此,当管理进程生成待配置模块的配置信息后,如果管理进程没有通知,业务进程是无法知道的,所以为了告知业务进程管理进程已经生成了待配置模块的配置信息,管理进程需要生成配置切换消息,以使得业务进程知道管理进程已经生成了待配置模块的配置信息,并基于共享存储空间的存储地址,读取共享存储空间的存储地址指向的数据,并基于待配置模块的名称,建立待配置模块与配置信息之间的关联。
示例性地,对于步骤101-106,假设审计系统启动了一个业务进程和一个管理进程,此时,业务进程用于获取网络报文并对网络报文进行相应的操作,另一方面,如果基于业务的需要,需要更换新的配置信息并基于新的配置信息对其处理,该管理进程则会获取新的配置信息,其中,在管理进行获取新的配置信息,业务进程并不会停止相关的业务操作,例如,不会停止对网络报文进行协议解析。
可见,本申请实施例的方法通过启动两个进程,能够将业务操作与配置操作分离开,即通过业务进程执行业务操作,而管理进程执行配置操作,这样一来,与现有技术中的第一种方式相比,本申请实施例就不需要使业务进程重新启动应用程序,从而不中断业务进程正在执行业务操作。另一方面,与现有技术中的第二种方式相比,本申请实施例的配置操作的执行不需要业务进程执行,进而不需要业务进程基于线程切换停止当前的业务操作而切换至执行配置操作,进而可以避免线程切换所导致的性能降低这个问题和避免线程切换所需加互斥锁,换而言之,与现有技术相比,本申请实施例的方法在实现配置动态加载的前提下,一方面能够避免业务中断,另一方面能够不降应用程序性能且不需要加互斥锁。
在本申请实施例中,作为一种可选的实施方式,在步骤101:启动业务进程和管理进程之后,步骤102:基于管理进程从配置加载指令中获取待配置模块的名称之前,本申请实施例的方法还包括以下步骤:
创建共享存储空间,其中,共享存储空间为业务进程与管理进程共享的存储空间。
在本可选的实施方式,通过执行共享存储空间的创建指令能够创建共享存储空间,这样一来,就能够使得业务进程和管理进程能够访问同一份数据,即能够使得业务进程和管理进程能够访问相同的配置信息。
在本可选的实施方式中,进一步可选地,共享存储空间为内存空间。
在本申请实施例中,作为一种可选的实施方式,步骤101:启动业务进程和管理进程,包括以下子步骤:
将共享存储空间映射到管理进程的进程空间;
创建业务进程的消息队列,其中,业务进程的消息队列用于与管理进程进行数据传递;
将共享存储空间映射到业务进程的进程空间,并将消息队列业务进程绑定,其中,一个业务进程绑定一个消息队列。
在本可选的实施方式,为了使得业务进程知道哪一部分的存储空间为共享空间,需要将共享存储空间映射到业务进程的进程空间,其中,关于进程空间的相关说明请参考现有技术,本申请实施例对此不作赘述。
在本可选的实施方式,为了在启动业务进程后,业务进程能够与管理进程进行通信,因此需要创建业务进程的消息队列,其中该消息队列能够实现跨进程通信。
在本可选的实施方式,为了使得管理进程知道哪一部分的存储空间为共享空间,需要将共享存储空间映射到管理进程的进程空间。
需要说明是,安全审计系统可以启动两个或两个以上的业务进程,而每个业务进程均绑定一个消息队列,例如,如图2所示,安全审计系统可启动业务进程1、业务进程2......业务进程N,而消息队列就有消息队列1、消息队列2......消息队列N。
在本可选的实施方式中,可选地,如图2所示,业务进程的消息队列为无锁队列,其中,关于无锁队列的实现过程,请参阅现有技术,本申请实施例对此不作赘述。
在本申请实施例中,作为一种可选的实施方式,在步骤101:启动业务进程和管理进程之后,步骤102:基于管理进程从配置加载指令中获取待配置模块的名称之前,本申请实施例的方法还包括以下步骤:
基于业务进程和业务进程的消息队列,向管理进程发送注册请求,其中,注册请求包括业务进程的身份标识、待配置模块的名称和待配置模块对应的配置加载函数;
基于管理进程,记录保存待配置模块的名称、待配置模块对应的配置加载函数、业务进程的身份标识。
在本申请实施例中,管理进程通过记录保存待配置模块的名称、待配置模块对应的配置加载函数、业务进程的身份标识就能够为待配置模块精确匹配配置加载函数,其中,由于管理进程可接收多个业务进程的配置请求,因此为了识别是多个业务进程中的哪个业务进程发送的配置请求,需要记录业务进程的身边标识,并且,每个业务进程的身份标识都是唯一的。
在本申请实施例中,作为一种可选的实施方式,在步骤105:基于管理进程生成配置切换消息并将配置切换消息发送至业务进程的消息队列中之后,步骤106:基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息之前,本申请实施例的方法还包括以下步骤:
当检测到目标报文的数量小于第一预设阈值、或以采样方式处理目标报文的数量到达第三预设阈值或业务进程的持续处理时间大于等于第二预设阈值时,确定待配置模块需要切换配置。
具体地,第一预设阈值可以是30、也可以是40,本申请实施例对此不作限定。另一方面,第二预设阈值可以是5小时,也可以是10小时,本申请实施例对此不作限定。
在本申请实施例中,作为一种可选的实施方式,在步骤:确定待配置模块需要切换配置之后,步骤:基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息之前,本申请实施例的方法还包括:
基于业务进程,检测业务进程的消息队列是否存在配置切换消息,若存在则执行基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息。
在本申请实施例中,作为一种可选的实施方式,在步骤:检测业务进程的消息队列是否存在配置切换消息之后,步骤106:基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息之前,本申请实施例的方法还包括以下步骤:
判断业务进程的进程空间是否存在原始配置;
若业务进程存在原始配置,则释放业务进程的原始配置占用的存储空间。
本可选的实施方式通过是释放原始配置占用的存储空间,能够降低内存占用。
在本可选的实施方式中,进一步可选地,本申请实施例的方法还包括:
当判断业务进程的进程空间不存在原始配置时,直接执行基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息。
实施例二
请参阅图3,图3是本申请实施例公开的一种配置动态加载装置的结构示意图。如图3所示,本申请实施例的装置包括以下功能模块:
启动模块201,用于启动业务进程和管理进程,业务进程用于响应目标报文的业务处理,管理进程用于响应目标报文的配置信息的加载;
配置模块202,用于当基于管理进程接收到针对目标报文的配置加载指令时,基于管理进程从配置加载指令中获取待配置模块的名称;
配置模块202,还用于基于管理进程和待配置模块的名称执行待配置模块对应的配置加载函数,并得到待配置模块的配置信息;
配置模块202,还基于管理进程将待配置模块的配置信息存入共享存储空间中;
配置模块202,还用于基于管理进程生成配置切换消息并将配置切换消息发送至业务进程的消息队列中,配置切换消息包括待配置模块的名称和共享存储空间的存储地址;
配置模块202,还用于当检测到需要切换待配置模块的配置时,基于业务进程、待配置模块的名称和共享存储空间的存储地址读取待配置模块的配置信息。
本申请实施例的装置通过启动两个进程,能够将业务操作与配置操作分离开,即通过业务进程执行业务操作,而管理进程执行配置操作,这样一来,与现有技术中的第一种方式相比,本申请实施例就不需要使业务进程重新启动应用程序,从而不中断业务进程正在执行业务操作。另一方面,与现有技术中的第二种方式相比,本申请实施例的配置操作的执行不需要业务进程执行,进而不需要业务进程基于线程切换停止当前的业务操作而切换至执行配置操作,进而可以避免线程切换所导致的性能降低这个问题和避免线程切换所需加互斥锁,换而言之,与现有技术相比,本申请实施例在实现配置动态加载的前提下,一方面能够避免业务中断,另一方面能够不降应用程序性能且不需要加互斥锁。
需要说明的是,关于本申请实施例的其他说明,请参阅本申请实施例一,本申请实施例不作赘述。
实施例三
请参阅图4,图4是本申请实施例公开的一种计算机设备的结构示意图。如图4所示,本申请实施例的设备包括:
处理器302;以及
存储器301,配置用于存储机器可读指令,指令在由处理器302执行时,执行本申请实施例一的配置动态加载方法。
本申请实施例的设备通过启动两个进程,能够将业务操作与配置操作分离开,即通过业务进程执行业务操作,而管理进程执行配置操作,这样一来,与现有技术中的第一种方式相比,本申请实施例就不需要使业务进程重新启动应用程序,从而不中断业务进程正在执行业务操作。另一方面,与现有技术中的第二种方式相比,本申请实施例的配置操作的执行不需要业务进程执行,进而不需要业务进程基于线程切换停止当前的业务操作而切换至执行配置操作,进而可以避免线程切换所导致的性能降低这个问题和避免线程切换所需加互斥锁,换而言之,与现有技术相比,本申请实施例在实现配置动态加载的前提下,一方面能够避免业务中断,另一方面能够不降应用程序性能且不需要加互斥锁。
实施例四
本申请实施例公开一种存储介质存储介质存储有计算机程序,计算机程序被处理器执行本申请实施例一的配置动态加载方法。
本申请实施例的存储介质通过启动两个进程,能够将业务操作与配置操作分离开,即通过业务进程执行业务操作,而管理进程执行配置操作,这样一来,与现有技术中的第一种方式相比,本申请实施例就不需要使业务进程重新启动应用程序,从而不中断业务进程正在执行业务操作。另一方面,与现有技术中的第二种方式相比,本申请实施例的配置操作的执行不需要业务进程执行,进而不需要业务进程基于线程切换停止当前的业务操作而切换至执行配置操作,进而可以避免线程切换所导致的性能降低这个问题和避免线程切换所需加互斥锁,换而言之,与现有技术相比,本申请实施例在实现配置动态加载的前提下,一方面能够避免业务中断,另一方面能够不降应用程序性能且不需要加互斥锁。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种配置动态加载方法,其特征在于,所述方法包括:
启动业务进程和管理进程,所述业务进程用于响应目标报文的业务处理,所述管理进程用于响应所述目标报文的配置信息的加载;
当基于所述管理进程接收到针对目标报文的配置加载指令时,基于所述管理进程从所述配置加载指令中获取待配置模块的名称;
基于所述管理进程和所述待配置模块的名称执行所述待配置模块对应的配置加载函数,并得到所述待配置模块的配置信息;
基于所述管理进程将所述待配置模块的配置信息存入共享存储空间中;
基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中,所述配置切换消息包括所述待配置模块的名称和所述共享存储空间的存储地址;
当检测到所述目标报文的数量小于第一预设阈值、或以采样方式处理所述目标报文的数量达到第三预设阈值或所述业务进程的持续处理时间大于等于第二预设阈值时,确定所述待配置模块需要切换配置;
当检测到需要切换所述待配置模块的配置时,基于所述业务进程,检测所述业务进程的消息队列是否存在所述配置切换消息,若存在则基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息。
2.如权利要求1所述的方法,其特征在于,在启动业务进程和管理进程之后,所述基于所述管理进程从所述配置加载指令中获取待配置模块的名称之前,所述方法还包括:
创建所述共享存储空间,其中,所述共享存储空间为所述业务进程与所述管理进程共享的存储空间;
以及,所述共享存储空间为内存空间。
3.如权利要求2所述的方法,其特征在于,所述启动业务进程和管理进程,包括:
将所述共享存储空间映射到所述管理进程的进程空间;
创建所述业务进程的所述消息队列,其中,所述业务进程的所述消息队列用于与所述管理进程进行数据传递;
将所述共享存储空间映射到所述业务进程的进程空间,并将所述消息队列所述业务进程绑定,其中,一个所述业务进程绑定一个所述消息队列。
4.如权利要求3所述的方法,其特征在于,在所述启动业务进程和管理进程之后,所述基于所述管理进程从所述配置加载指令中获取待配置模块的名称之前,所述方法还包括:
基于所述业务进程和所述业务进程的所述消息队列,向所述管理进程发送注册请求,其中,所述注册请求包括所述业务进程的身份标识、所述待配置模块的名称和所述待配置模块对应的所述配置加载函数;
基于所述管理进程,记录保存所述待配置模块的名称、所述待配置模块对应的所述配置加载函数、所述业务进程的身份标识。
5.如权利要求1所述的方法,其特征在于,在检测所述业务进程的消息队列是否存在所述配置切换消息之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,所述方法还包括:
判断所述业务进程的进程空间是否存在原始配置;
若所述业务进程存在所述原始配置,则释放所述业务进程的原始配置占用的存储空间。
6.一种配置动态加载装置,其特征在于,所述装置包括:
启动模块,用于启动业务进程和管理进程,所述业务进程用于响应目标报文的业务处理,所述管理进程用于响应所述目标报文的配置信息的加载;
配置模块,用于当基于所述管理进程接收到针对目标报文的配置加载指令时,基于所述管理进程从所述配置加载指令中获取待配置模块的名称;
所述配置模块,还用于基于所述管理进程和所述待配置模块的名称执行所述待配置模块对应的配置加载函数,并得到所述待配置模块的配置信息;
所述配置模块,还基于所述管理进程将所述待配置模块的配置信息存入共享存储空间中;
所述配置模块,还用于基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中,所述配置切换消息包括所述待配置模块的名称和所述共享存储空间的存储地址;
所述配置模块,还用于当检测到需要切换所述待配置模块的配置时,基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息;
以及,所述装置还用于在所述基于所述管理进程生成配置切换消息并将所述配置切换消息发送至所述业务进程的消息队列中之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,且检测到所述目标报文的数量小于第一预设阈值、或以采样方式处理所述目标报文的数量达到第三预设阈值或所述业务进程的持续处理时间大于等于第二预设阈值时,确定所述待配置模块需要切换配置;
以及,所述装置还用于在确定所述待配置模块需要切换配置之后,所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息之前,基于所述业务进程,检测所述业务进程的消息队列是否存在所述配置切换消息,若存在则执行所述基于所述业务进程、所述待配置模块的名称和所述共享存储空间的存储地址读取所述待配置模块的配置信息。
7.一种计算机设备,其特征在于,所述计算机设备包括:
处理器;以及
存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如权利要求1-5任一项所述的配置动态加载方法。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-5任一项所述的配置动态加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111476996.XA CN114138371B (zh) | 2021-12-02 | 2021-12-02 | 配置动态加载方法、装置及计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111476996.XA CN114138371B (zh) | 2021-12-02 | 2021-12-02 | 配置动态加载方法、装置及计算机设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138371A CN114138371A (zh) | 2022-03-04 |
CN114138371B true CN114138371B (zh) | 2024-02-06 |
Family
ID=80384458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111476996.XA Active CN114138371B (zh) | 2021-12-02 | 2021-12-02 | 配置动态加载方法、装置及计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138371B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327606B (zh) * | 2022-03-11 | 2022-07-05 | 武汉中科通达高新技术股份有限公司 | 配置管理方法、装置、电子设备及计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2866729A1 (fr) * | 2004-02-25 | 2005-08-26 | Opencube | Dispositif a memoire virtuelle partagee auto-administree apte a gerer au moins un flux de donnees multipiste |
CN102662773A (zh) * | 2012-03-13 | 2012-09-12 | 中冶南方工程技术有限公司 | 多进程间结构化文档通信系统 |
CN104834544A (zh) * | 2015-05-04 | 2015-08-12 | 广州杰赛科技股份有限公司 | 数据加载方法及装置 |
WO2017067391A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 虚拟机的数据共享方法及装置 |
CN106708761A (zh) * | 2015-11-12 | 2017-05-24 | 杭州华为数字技术有限公司 | 一种业务报文的处理方法及装置 |
CN107544828A (zh) * | 2017-09-01 | 2018-01-05 | 北京奇虎科技有限公司 | 配置加载方法及装置 |
CN109150930A (zh) * | 2017-06-15 | 2019-01-04 | 北京金山云网络技术有限公司 | 配置信息加载方法及装置、业务处理方法及装置 |
CN111309456A (zh) * | 2018-12-12 | 2020-06-19 | 深圳市茁壮网络股份有限公司 | 一种任务执行方法及系统 |
CN113590362A (zh) * | 2021-08-10 | 2021-11-02 | 中孚信息股份有限公司 | 进程间消息处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-02 CN CN202111476996.XA patent/CN114138371B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2866729A1 (fr) * | 2004-02-25 | 2005-08-26 | Opencube | Dispositif a memoire virtuelle partagee auto-administree apte a gerer au moins un flux de donnees multipiste |
CN102662773A (zh) * | 2012-03-13 | 2012-09-12 | 中冶南方工程技术有限公司 | 多进程间结构化文档通信系统 |
CN104834544A (zh) * | 2015-05-04 | 2015-08-12 | 广州杰赛科技股份有限公司 | 数据加载方法及装置 |
WO2017067391A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 虚拟机的数据共享方法及装置 |
CN106708761A (zh) * | 2015-11-12 | 2017-05-24 | 杭州华为数字技术有限公司 | 一种业务报文的处理方法及装置 |
CN109150930A (zh) * | 2017-06-15 | 2019-01-04 | 北京金山云网络技术有限公司 | 配置信息加载方法及装置、业务处理方法及装置 |
CN107544828A (zh) * | 2017-09-01 | 2018-01-05 | 北京奇虎科技有限公司 | 配置加载方法及装置 |
CN111309456A (zh) * | 2018-12-12 | 2020-06-19 | 深圳市茁壮网络股份有限公司 | 一种任务执行方法及系统 |
CN113590362A (zh) * | 2021-08-10 | 2021-11-02 | 中孚信息股份有限公司 | 进程间消息处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
面向实时嵌入式操作系统的进程机制;周昕;傅鹂;黄海伦;;计算机工程(第15期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114138371A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232010A (zh) | 一种告警方法、告警服务器及监控服务器 | |
CN111245900B (zh) | 一种分布式消息发送的处理系统及其处理方法 | |
CN108319496B (zh) | 资源访问方法、业务服务器、分布式系统及存储介质 | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
CN111008087B (zh) | 一种消息处理方法及装置 | |
CN111737022A (zh) | 一种基于微服务的接口调用方法、系统、设备及介质 | |
CN110677475A (zh) | 一种微服务处理方法、装置、设备及存储介质 | |
CN114138371B (zh) | 配置动态加载方法、装置及计算机设备、存储介质 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN112769876B (zh) | 一种设备通道信息获取方法、装置、设备和介质 | |
CN111586140A (zh) | 一种数据交互的方法及服务器 | |
CN113111666A (zh) | 一种实现应用程序的多语言翻译的系统及方法 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN114244758B (zh) | 安卓平台的网络诊断方法、存储介质、电子设备及系统 | |
CN115150464B (zh) | 应用代理方法、装置、设备及介质 | |
CN108289165B (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN113055493B (zh) | 数据包处理方法、装置、系统、调度设备和存储介质 | |
CN114546677A (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
CN113886082A (zh) | 请求处理方法、装置、计算设备及介质 | |
CN109034768B (zh) | 财务调拨方法、装置、计算机设备和存储介质 | |
CN111552907A (zh) | 消息处理方法、装置、设备和存储介质 | |
CN113138862A (zh) | 消息处理方法、服务器、设备、系统及存储介质 | |
JP2020048126A (ja) | 中継システム | |
CN113114737B (zh) | 信息的发送方法、装置及服务器 | |
CN111885198B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |