CN111708586B - 应用启动配置项加载方法、装置、计算机设备和存储介质 - Google Patents

应用启动配置项加载方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111708586B
CN111708586B CN202010573804.6A CN202010573804A CN111708586B CN 111708586 B CN111708586 B CN 111708586B CN 202010573804 A CN202010573804 A CN 202010573804A CN 111708586 B CN111708586 B CN 111708586B
Authority
CN
China
Prior art keywords
configuration item
instance
message queue
message
database
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
Application number
CN202010573804.6A
Other languages
English (en)
Other versions
CN111708586A (zh
Inventor
蒋树新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Pension Insurance Corp
Original Assignee
Ping An Pension Insurance Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Pension Insurance Corp filed Critical Ping An Pension Insurance Corp
Priority to CN202010573804.6A priority Critical patent/CN111708586B/zh
Publication of CN111708586A publication Critical patent/CN111708586A/zh
Application granted granted Critical
Publication of CN111708586B publication Critical patent/CN111708586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及研发测试技术领域,尤其是一种应用启动配置项加载方法、装置、计算机设备和存储介质。所述方法包括:监听消息队列中否存在实例启动注册信息;当所述消息队列中存在实例启动注册信息,将所述实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;调用所述推送线程从所述数据库中获取到实例对应的配置项的值;根据所述配置项的值生成初始化消息,将所述初始化消息发送至所述消息队列中,以使得所述实例监听所述消息队列中的初始化消息,并根据所述初始化消息中的配置项的值进行启动。其中,实例启动注册信息等可存储于区块链中。采用本方法能够减少网络请求,提高加载效率。

Description

应用启动配置项加载方法、装置、计算机设备和存储介质
技术领域
本申请涉及研发测试技术领域,特别是涉及一种应用启动配置项加载方法、装置、计算机设备和存储介质。
背景技术
配置中心是现代互联网应用必不可少的中间件,用来完成在系统不重启的情况下修改预设的配置项,并提供丰富的UI界面进行检索和维护。有提高系统的灵活性、可用性等好处。
但是传统的,配置中心都会使用存储和通讯中间件,配置中心对这些中间件的依赖程度较高,例如传统的在应用启动的时候,会首先查询本地缓存中的配置信息,如果本地缓存中不存在,则会在中间件广播集群中进行查找,若查找成功,则使用查找成功的配置信息,这样配置项对于中间件的依赖程度较高,在启动的过程中会存在一个不可用的等待时间,例如10s等,这个时间对于应用启动来说是白白浪费掉的,且如果一台实例浪费10s,而一个大型企业一般都会有几十万个实例,这样就会浪费更多的时间。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少网络请求,提高加载效率的应用启动配置项加载方法、装置、计算机设备和存储介质。
一种应用启动配置项加载方法,所述方法包括:
监听消息队列中否存在实例启动注册信息;
当所述消息队列中存在实例启动注册信息,将所述实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;
调用所述推送线程从所述数据库中获取到实例对应的配置项的值;
根据所述配置项的值生成初始化消息,将所述初始化消息发送至所述消息队列中,以使得所述实例监听所述消息队列中的初始化消息,并根据所述初始化消息中的配置项的值进行启动。
在其中一个实施例中,所述实例启动注册信息是所述实例在启动时向所述消息队列发送的,且在所述消息队里中按照时间先后顺序进行存储。
在其中一个实施例中,所述方法还包括:
监听所述消息队列中是否存在实例退出信息;
当所述消息队列中存在实例退出信息时,则将所述实例退出信息保存至数据库,且将所述实例退出信息上传至区块链中。
在其中一个实施例中,所述方法还包括:
接收配置项修改系统在修改完配置项后的调用请求,所述配置项的修改是以实例维度进行的;
根据所述调用请求获取到所述配置项修改系统修改后的配置项的值;
将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听所述消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给所述消息队列;
监听所述消息队列中各个配置项的更新结果,并根据所监听到的所述更新结果更改所述数据库中对应的实例的状态。
在其中一个实施例中,所述根据所监听到的所述更新结果更改所述数据库中对应的实例的状态之后,还包括:
接收所述配置项修改系统的更新结果获取请求;
根据所述更新结果获取请求查询所述数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
一种应用启动配置项加载装置,所述装置包括:
第一监听模块,用于监听消息队列中否存在实例启动注册信息;
推送线程启动模块,用于当所述消息队列中存在实例启动注册信息,将所述实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;
调用模块,用于调用所述推送线程从所述数据库中获取到实例对应的配置项的值;
加载模块,用于根据所述配置项的值生成初始化消息,将所述初始化消息发送至所述消息队列中,以使得所述实例监听所述消息队列中的初始化消息,并根据所述初始化消息中的配置项的值进行启动。
在其中一个实施例中,所述实例启动注册信息是所述实例在启动时向所述消息队列发送的,且在所述消息队里中按照时间先后顺序进行存储。
在其中一个实施例中,所述装置还包括:
第二监听模块,用于监听所述消息队列中是否存在实例退出信息;
保存模块,用于当所述消息队列中存在实例退出信息时,则将所述实例退出信息保存至数据库,且将所述实例退出信息上传至区块链中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述中任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述的方法的步骤。
上述应用启动配置项加载方法、装置、计算机设备和存储介质,在应用启动加载配置项的时候,中间件完全解耦,以应用为核心系统,配置项是由核心系统被动通知过去的,即核心系统监听了应用启动状态的变化,然后发起了配置项的初始化,这样并不是在应用启动时,应用主动去消息队列这个中间件查找配置信息,可以减少时间的浪费,且并不是应用主动获取配置,减少了网络请求的次数,且这样通过启动的时候将配置项动态加载到本地内存,可以在应用启动过程中进行配置项的在线初始化,应用始终通过内存方式访问配置项,减少网络请求,提高了加载效率。
附图说明
图1为一个实施例中应用启动配置项加载方法的应用场景图;
图2为一个实施例中应用启动配置项加载方法的流程示意图;
图3为一个实施例中的实例退出方式的流程图;
图4为一个实施例中的配置项动态修改方法的示意图;
图5为一个实施例中应用启动配置项加载装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用启动配置项加载方法,可以应用于如图1所示的应用环境中。其中,核心系统102通过网络与消息队列104进行通信,消息队列104通过网络与各台实例106进行通信,配置项修改系统108可以与核心系统102进行通信,且核心系统102还可以与数据库110进行通信。核心系统102可以监听消息队列中否存在实例启动注册信息,当消息队列中存在实例启动注册信息,则核心系统102将实例启动注册信息保存到数据库中,并启动实例配置项的推送线程,这样核心系统102可以调用推送线程从数据库中获取到实例对应的配置项的值;并根据配置项的值生成初始化消息,将初始化消息发送至消息队列104中,从而实例106可以监听消息队列104中的初始化消息,并根据初始化消息中的配置项的值进行启动。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种应用启动配置项加载方法,以该方法应用于图1中的核心系统为例进行说明,包括以下步骤:
S202:监听消息队列中否存在实例启动注册信息。
具体地,实例是指启动的某一个应用程序。实例启动注册信息是实例在启动时向消息队列发送的,且在消息队里中按照时间先后顺序进行存储,该启动注册信息包括实例的实例标识以及实例的状态,实例标识可以是通过应用程序的名称以及实例对应的账户所表示。
实例启动注册信息是应用启动的所时候向消息队列rocketMq发送的,即实例在启动的时候,会向消息队列rocketMq发送启动注册信息,消息队列rocketMq将所接收的实例启动注册信息按照时间先后顺序进行保存。
且可选地,应用在启动注册的时候,可以存在两步初始化,即首先进行内存初始化,获取到默认的配置项的值进行初始化,这个是兜底策略,然后执行在线初始化,即核心系统推送加载配置项,然后应用会修改之前的默认值。因此在应用启动的时候,可以分为两个线程进行处理,第一个线程向消息队列发送应用启动注册信息,从而触发核心系统推送加载配置项,另外一个线程则首先获取到默认的配置项的值进行初始化。
S204:当消息队列中存在实例启动注册信息,将实例启动注册信息保存到数据库中,并启动实例配置项的推送线程。
具体地,数据库可以为分布式存储的数据库,例如redis,该推送线程是为了将实例对应的配置项的值推送给对应的示例的,其可以是核心系统临时启动的,当存在多个实例的配置项的值需要推送时,则可以并行启动多个推送线程,以实现对多个配置项的值的同时推送。核心系统在监听到消息队列rocketMq中存在实例启动注册信息,首先将该实例以及实例状态存储到数据库中,并启动实例配置项的推送。且需要强调的是,为了进一步保证上述实例启动注册信息的私密和安全性,上述的实例启动注册信息还可存储于区块链的节点中。
S206:调用推送线程从数据库中获取到实例对应的配置项的值。
S208:根据配置项的值生成初始化消息,将初始化消息发送至消息队列中,以使得实例监听消息队列中的初始化消息,并根据初始化消息中的配置项的值进行启动。
具体地,核心系统从数据库中根据实例标识查询到对应的配置项的值,然后生成初始化消息,将初始化消息发送到消息队列rocketMq中,例如将查询到的配置项的值发送到消息队列rocketMq中的对应的实例启动注册消息中,这样实例监听到消息队列rocketMq中与其对应的实例启动注册消息存在对应的初始化消息后,则可以根据初始化消息中的配置项的值进行启动,即替换掉默认值后进行启动。
上述应用启动配置项加载方法,在应用启动加载配置项的时候,中间件完全解耦,以应用为核心系统,配置项是由核心系统被动通知过去的,即核心系统监听了应用启动状态的变化,然后发起了配置项的初始化,这样并不是在应用启动时,应用主动去消息队列这个中间件查找配置信息,从而可以减少时间的浪费,且并不是应用主动获取配置,减少了网络请求的次数,且这样通过启动的时候将配置项动态加载到本地内存,可以在应用启动过程中进行配置项的在线初始化,应用始终通过内存方式访问配置项,减少网络请求,提高了加载效率。
在其中一个实施例中,请参阅图3所示,图3为一个实施例中的实例退出方式的流程图,该方法可以包括:监听消息队列中是否存在实例退出信息;当消息队列中存在实例退出信息时,则将实例退出信息保存至数据库。
具体地,当某个应用程序的实例关闭时,则该应用程序向消息队列rocketMq中发送退出消息,这样核心系统即可以监听到该退出消息,并将该退出消息对应的实例状态保存到数据库中,且需要强调的是,为了进一步保证上述实例退出信息的私密和安全性,上述的实例退出信息还可存储于区块链的节点中。
上述实施例中,实例的退出也是通过消息队列rocketMq来进行,这样当某个接入的应用集群发生宕机,也不会影响到核心系统的正常运行,确保各个应用之间是相互独立的。
在其中一个实施例中,请参见图4所示,图4为一个实施例中的配置项动态修改方法的示意图,在该实施例中,该配置项动态修改方法可以包括:
S402:接收配置项修改系统在修改完配置项后的调用请求,配置项的修改是以实例维度进行的。
具体地,调用请求可以是用户通过操作配置项修改系统中对应的实例后,配置项修改系统所生成的,并发送给核心系统的。例如,用户在配置项修改系统查询对应的配置项,通过选择对应的环境、部署区域、应用进入,这里的环境、部署区域以及应用仅是配置项的命名空间,用于科学分类、统计和便于维护,然后用户填写对应的配置项的修改值后选择确定,从而可以生成调用请求。
具体地,其中修改的时候,需要配置配置项在当前集群中每个实例的值,这是因为应用部署都是以集群方式进行的,即多台服务器一起工作,每个服务器实例内存会有一份配置,可以按照实例维度单独进行修改,这样便于做一些后台逻辑灰度,例如修改一部分服务器中的实例,而另外一部分不进行修改,在确定修改后的实例没有故障等后,则再将另外一部分没有修改的实例进行修改等。
S404:根据调用请求获取到配置项修改系统修改后的配置项的值。
具体地,该调用请求中可以携带有修改后的配置项的值和对应的实例标识,这样核心系统可以根据实例标识查询到数据库中已有的实例,然后通过该修改后的配置项的值替换掉已有的配置项的值。
S406:将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给消息队列。
具体地,核心系统将修改后的配置项存储在数据库中,例如redis数据库中,并调用消息队列rocketMq做配置项修改广播通知,这样应用集群中的每个实例会监听到配置项变更消息,统一更新内存中的值,并反馈结果给消息队列rocketMq。例如应用集群在接收到广播后,首先判断内存中是否存在该配置,如果存在的话,则进行修改,并将修改结果反馈给消息队列rocketMq。
S408:监听消息队列中各个配置项的更新结果,并根据所监听到的更新结果更改数据库中对应的实例的状态。
具体地,核心系统负责收集更新结果,例如可以实时遍历消息队列以判断是否存在各个配置项的更新结果,即是否接收到了实例返回的更新结果,若存在,则核心系统将更新结果更改数据库中对应的实例的状态。
上述实施例中,通过科学的分类方法管理动态配置项,由环境、部署区域、应用三个核心视角出发,对配置项进行快速有效地分类管理。使用方面,通过定义相应的Java类、属性和注解完成配置项的定义,无需提供类方法,最大限度地提高使用便捷程度。
在其中一个实施例中,请继续参阅图4,在步骤S408,即根据所监听到的更新结果更改数据库中对应的实例的状态之后,还可以包括:
S410:接收配置项修改系统的更新结果获取请求。
具体地,由于配置项修改系统需要统计最后的修改结果,因此,其可以直接向核心系统发送更新结果获取请求,这样核心系统通过查询数据库得到更新结果。
S412:根据更新结果获取请求查询数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
具体地,核心系统将根据更新结果获取请求查询数据库得到更新结果,然后将更新结果推送给配置项修改系统,其中可选地,为了减少网络请求的次数,核心系统可以是每次查询到预设数量,例如20条更新结果后,反馈一次,直至所有的更新结果反馈完成,或者是查询得到所有的更新结果后再统一反馈。
上述实施例中,核心系统负责收集更新结果,并通过配置项修改系统展示给用户进行查看,整个操作期间,应用使用配置项一直在本地内存中访问,无多余的网络请求。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种应用启动配置项加载装置,包括:第一监听模块100、推送线程启动模块200、调用模块300和加载模块400,其中:
第一监听模块100,用于监听消息队列中否存在实例启动注册信息;
推送线程启动模块200,用于当消息队列中存在实例启动注册信息,将实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;
调用模块300,用于调用推送线程从数据库中获取到实例对应的配置项的值;
加载模块400,用于根据配置项的值生成初始化消息,将初始化消息发送至消息队列中,以使得实例监听消息队列中的初始化消息,并根据初始化消息中的配置项的值进行启动。
在其中一个实施例中,实例启动注册信息是实例在启动时向消息队列发送的,且在消息队里中按照时间先后顺序进行存储。
在其中一个实施例中,上述应用启动配置项加载装置还可以包括:
第二监听模块,用于监听消息队列中是否存在实例退出信息;
保存模块,用于当消息队列中存在实例退出信息时,则将实例退出信息保存至数据库。
在其中一个实施例中,上述应用启动配置项加载装置还可以包括:
第二接收模块,用于接收配置项修改系统在修改完配置项后的调用请求,配置项的修改是以实例维度进行的;
修改模块,用于根据调用请求获取到配置项修改系统修改后的配置项的值;
广播模块,用于将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给消息队列;
第三监听模块,用于监听消息队列中各个配置项的更新结果,并根据所监听到的更新结果更改数据库中对应的实例的状态。
在其中一个实施例中,上述应用启动配置项加载装置还可以包括:
第三接收模块,用于接收配置项修改系统的更新结果获取请求;
反馈模块,用于根据更新结果获取请求查询数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
关于应用启动配置项加载装置的具体限定可以参见上文中对于应用启动配置项加载方法的限定,在此不再赘述。上述应用启动配置项加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储实例启动注册信息等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用启动配置项加载方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:监听消息队列中否存在实例启动注册信息;当消息队列中存在实例启动注册信息,将实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;调用推送线程从数据库中获取到实例对应的配置项的值;根据配置项的值生成初始化消息,将初始化消息发送至消息队列中,以使得实例监听消息队列中的初始化消息,并根据初始化消息中的配置项的值进行启动。
在一个实施例中,处理器执行计算机程序时所涉及的实例启动注册信息是实例在启动时向消息队列发送的,且在消息队里中按照时间先后顺序进行存储。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:监听消息队列中是否存在实例退出信息;当消息队列中存在实例退出信息时,则将实例退出信息保存至数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收配置项修改系统在修改完配置项后的调用请求,配置项的修改是以实例维度进行的;根据调用请求获取到配置项修改系统修改后的配置项的值;将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给消息队列;监听消息队列中各个配置项的更新结果,并根据所监听到的更新结果更改数据库中对应的实例的状态。
在一个实施例中,处理器执行计算机程序时所实现的根据所监听到的更新结果更改数据库中对应的实例的状态之后,还包括:接收配置项修改系统的更新结果获取请求;根据更新结果获取请求查询数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:监听消息队列中否存在实例启动注册信息;当消息队列中存在实例启动注册信息,将实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;调用推送线程从数据库中获取到实例对应的配置项的值;根据配置项的值生成初始化消息,将初始化消息发送至消息队列中,以使得实例监听消息队列中的初始化消息,并根据初始化消息中的配置项的值进行启动。
在一个实施例中,计算机程序被处理器执行时所涉及的实例启动注册信息是实例在启动时向消息队列发送的,且在消息队里中按照时间先后顺序进行存储。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:监听消息队列中是否存在实例退出信息;当消息队列中存在实例退出信息时,则将实例退出信息保存至数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收配置项修改系统在修改完配置项后的调用请求,配置项的修改是以实例维度进行的;根据调用请求获取到配置项修改系统修改后的配置项的值;将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给消息队列;监听消息队列中各个配置项的更新结果,并根据所监听到的更新结果更改数据库中对应的实例的状态。
在一个实施例中,计算机程序被处理器执行时所实现的根据所监听到的更新结果更改数据库中对应的实例的状态之后,还包括:接收配置项修改系统的更新结果获取请求;根据更新结果获取请求查询数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用启动配置项加载方法,所述方法包括:
监听消息队列中否存在实例启动注册信息;
当所述消息队列中存在实例启动注册信息,将所述实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;
调用所述推送线程从所述数据库中获取到实例对应的配置项的值;
根据所述配置项的值生成初始化消息,将所述初始化消息发送至所述消息队列中,以使得所述实例监听所述消息队列中的初始化消息,并根据所述初始化消息中的配置项的值进行启动。
2.根据权利要求1所述的方法,其特征在于,所述实例启动注册信息是所述实例在启动时向所述消息队列发送的,且在所述消息队里中按照时间先后顺序进行存储。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监听所述消息队列中是否存在实例退出信息;
当所述消息队列中存在实例退出信息时,则将所述实例退出信息保存至数据库,且将所述实例退出信息上传至区块链中。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:
接收配置项修改系统在修改完配置项后的调用请求,所述配置项的修改是以实例维度进行的;
根据所述调用请求获取到所述配置项修改系统修改后的配置项的值;
将修改后的配置项的值存储至数据库中,并调用消息队列发送配置项修改广播通知,以使得实例监听所述消息队列中的配置项修改广播通知,并修改内存中的配置项的值后,将修改完成的信息反馈给所述消息队列;
监听所述消息队列中各个配置项的更新结果,并根据所监听到的所述更新结果更改所述数据库中对应的实例的状态。
5.根据权利要求4所述的方法,其特征在于,所述根据所监听到的所述更新结果更改所述数据库中对应的实例的状态之后,还包括:
接收所述配置项修改系统的更新结果获取请求;
根据所述更新结果获取请求查询所述数据库得到更新结果,并将查询到的更新结果反馈给配置项修改系统。
6.一种应用启动配置项加载装置,其特征在于,所述装置包括:
第一监听模块,用于监听消息队列中否存在实例启动注册信息;
推送线程启动模块,用于当所述消息队列中存在实例启动注册信息,将所述实例启动注册信息保存到数据库中,并启动实例配置项的推送线程;
调用模块,用于调用所述推送线程从所述数据库中获取到实例对应的配置项的值;
加载模块,用于根据所述配置项的值生成初始化消息,将所述初始化消息发送至所述消息队列中,以使得所述实例监听所述消息队列中的初始化消息,并根据所述初始化消息中的配置项的值进行启动。
7.根据权利要求6所述的装置,其特征在于,所述实例启动注册信息是所述实例在启动时向所述消息队列发送的,且在所述消息队里中按照时间先后顺序进行存储。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二监听模块,用于监听所述消息队列中是否存在实例退出信息;
保存模块,用于当所述消息队列中存在实例退出信息时,则将所述实例退出信息保存至数据库,且将所述实例退出信息上传至区块链中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202010573804.6A 2020-06-22 2020-06-22 应用启动配置项加载方法、装置、计算机设备和存储介质 Active CN111708586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010573804.6A CN111708586B (zh) 2020-06-22 2020-06-22 应用启动配置项加载方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010573804.6A CN111708586B (zh) 2020-06-22 2020-06-22 应用启动配置项加载方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111708586A CN111708586A (zh) 2020-09-25
CN111708586B true CN111708586B (zh) 2023-06-20

Family

ID=72541623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010573804.6A Active CN111708586B (zh) 2020-06-22 2020-06-22 应用启动配置项加载方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111708586B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112488462A (zh) * 2020-11-13 2021-03-12 山东中创软件商用中间件股份有限公司 一种工作流数据的统一推送方法、装置及介质
CN113760319A (zh) * 2020-11-27 2021-12-07 北京京东振世信息技术有限公司 一种更新应用的方法和系统
CN112559025A (zh) * 2020-12-16 2021-03-26 中国人寿保险股份有限公司 配置信息更新同步方法及设备
CN112650648A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 监控方法、装置、设备和存储介质
CN115314509A (zh) * 2022-07-27 2022-11-08 上海浦东发展银行股份有限公司 一种应用注册信息的同步方法、装置、设备及存储介质
CN115309457B (zh) * 2022-08-10 2023-10-27 中电金信软件有限公司 应用实例的重启方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677948A (zh) * 2014-01-08 2014-03-26 从兴技术有限公司 一种启动器和启动方法
CN108270876A (zh) * 2018-03-30 2018-07-10 卡斯柯信号有限公司 一种信号系统中代理服务器的实现方法
CN109144676A (zh) * 2017-06-15 2019-01-04 阿里巴巴集团控股有限公司 一种应用程序的自启动检测方法、装置及服务器
CN110032459A (zh) * 2019-04-22 2019-07-19 深圳乐信软件技术有限公司 消息队列配置方法、装置、计算机设备及存储介质
CN110659142A (zh) * 2019-08-02 2020-01-07 平安科技(深圳)有限公司 消息队列处理方法及装置、电子设备、存储介质
CN110955460A (zh) * 2019-11-15 2020-04-03 北京金山云网络技术有限公司 一种服务进程启动方法、装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467388B2 (en) * 2005-11-22 2008-12-16 Microsoft Corporation Monitoring message queues and starting processing applications
WO2016151398A1 (en) * 2015-03-23 2016-09-29 Societal Innovations Ipco Limited System and method for configuring a platform instance at runtime
US10476982B2 (en) * 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677948A (zh) * 2014-01-08 2014-03-26 从兴技术有限公司 一种启动器和启动方法
CN109144676A (zh) * 2017-06-15 2019-01-04 阿里巴巴集团控股有限公司 一种应用程序的自启动检测方法、装置及服务器
CN108270876A (zh) * 2018-03-30 2018-07-10 卡斯柯信号有限公司 一种信号系统中代理服务器的实现方法
CN110032459A (zh) * 2019-04-22 2019-07-19 深圳乐信软件技术有限公司 消息队列配置方法、装置、计算机设备及存储介质
CN110659142A (zh) * 2019-08-02 2020-01-07 平安科技(深圳)有限公司 消息队列处理方法及装置、电子设备、存储介质
CN110955460A (zh) * 2019-11-15 2020-04-03 北京金山云网络技术有限公司 一种服务进程启动方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN111708586A (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN111708586B (zh) 应用启动配置项加载方法、装置、计算机设备和存储介质
CN109739573B (zh) 实现api接口调用的处理方法及装置、实现api接口的系统
CN108573371B (zh) 数据审批方法、装置、计算机设备和存储介质
CN112910945B (zh) 请求链路跟踪方法和业务请求处理方法
CN109586948A (zh) 更新系统配置数据的方法、装置、计算机设备和存储介质
CN110738389A (zh) 工作流处理方法、装置、计算机设备和存储介质
CN109144487B (zh) 进件业务开发方法、装置、计算机设备和存储介质
CN110781214A (zh) 数据库读写方法、装置、计算机设备和存储介质
CN110555041A (zh) 数据处理方法、装置、计算机设备和存储介质
CN110795171B (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN110633208A (zh) 增量代码覆盖率测试方法及系统
CN111400578B (zh) 货物数据查询方法、装置、计算机设备和存储介质
CN112685091A (zh) 基于大数据的业务请求处理方法、装置、设备和介质
CN111400246A (zh) 异步导入文件方法、装置、计算机设备和存储介质
CN112100152A (zh) 业务数据处理方法、系统、服务器和可读存储介质
CN114218267A (zh) 查询请求异步处理方法、装置、计算机设备、存储介质
CN114218156A (zh) 数据导出方法、装置、计算机设备和存储介质
CN111752975A (zh) 基于Redis的数据加载方法、装置、计算机设备和存储介质
CN115118612A (zh) 资源配额管理方法、装置、计算机设备和存储介质
CN112395057B (zh) 基于定时任务的数据处理方法、装置、计算机设备
CN114416438A (zh) 数据导出方法、装置、计算机设备及调度服务系统
CN109254997B (zh) 数据同步方法、系统、计算机设备和可读存储介质
CN112783866A (zh) 数据读取方法、装置、计算机设备和存储介质
CN111597240A (zh) 数据导出方法、装置、计算机设备和存储介质
CN111552551A (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