CN112328322B - 一种Apollo配置本地化的方法及系统 - Google Patents
一种Apollo配置本地化的方法及系统 Download PDFInfo
- Publication number
- CN112328322B CN112328322B CN202011159345.3A CN202011159345A CN112328322B CN 112328322 B CN112328322 B CN 112328322B CN 202011159345 A CN202011159345 A CN 202011159345A CN 112328322 B CN112328322 B CN 112328322B
- Authority
- CN
- China
- Prior art keywords
- event
- value
- processing device
- apollo
- post
- 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
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/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种Apollo配置本地化的方法及系统,涉及系统数据处理技术领域,系统用于读取Apollo配置项和组装event事件,并将event事件发送给第一处理装置,第一处理装置监听和解析event事件及修改变量值,第二处理装置监听Apollo配置项,重新组装event事件并发送给第一处理装置,变更装置用于提供环境给操作人员修改Apollo配置项,修改后的Apollo配置项变更信息发送至第二处理装置,第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法,第二后置处理单元用于可以主动查询Apollo的配制文件的配制项,第三后置处理单元用于监听event事件,从接口获取报文内容,本发明的一种Apollo配置本地化的方法及系统能够减少开发人员的工作的复杂度,提升了系统的性能和稳定性。
Description
技术领域
本发明涉及系统开发技术领域,具体来说,涉及一种Apollo配置本地化的方法及系统。
背景技术
现有系统大部分都采用配置中心替换原有的静态配置方式,这样如果配置项发生变化可以不用去重启系统应用,只需要在Apollo上把配置项改成想要的配置值就可以了,大大的简化了流程,提升了系统的稳定性。但加上了Apollo后系统就有两套配置方式了,配置项是远程Apollo上的还是本地properties静态文件中的,系统上没办法识别,因为两者获取配置项值的方式不一样,容易造成数据处理过大系统崩溃。
发明内容
为了克服现有技术的不足,本发明的一种Apollo配置本地化的方法及系统,能够解决在处理数据时因负担过大而导致系统崩溃现象发生的问题。
本发明解决其技术问题所采用的技术方案是:一种Apollo配置本地化的方法,其改进之处在于,包括下列步骤:
一种Apollo配置本地化的方法,其特征在于,包括下列步骤:
步骤一:启动Spring项目,收集系统@value注解信息;
步骤二:系统启动完成,读取Apollo配置项,组装event事件并发送至第一处理装置;
步骤三:第一处理装置开启event事件监听模式,接收event事件并解析收到的内容,判断@value注解信息是否为空,不为空则修改变量值;第一处理装置包括用于监听event事件的第三后置处理单元,第三后置处理单元监听到有event事件后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值;
步骤四:第二处理装置开启Apollo监听模式,监听变更装置是否做出信息变更,若监视出变更装置有信息变更,则重新组装event事件后将信号反馈至第一处理装置;
步骤五:重新组装的event事件发送至第一处理装置后,第一处理装置判断@value注解信息是否为空,不为空则修改变量值。
作为上述技术方案的改进,系统包括第一后置处理单元,所述第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法。
作为上述技术方案的进一步改进,步骤一中,收集系统@value注解信息后将系统@value注解信息添加至系统的容器map中。
作为上述技术方案的进一步改进,系统包括第二后置处理单元,所述第二后置处理单元用于查询Apollo配置文件配置项,且将查询到的配置项和对应的配置值组装成event事件,并将event事件发送至第一处理装置。
作为上述技术方案的进一步改进,步骤四中,第二处理装置开启Apollo监听后,所述变更装置将Apollo配置变更信息反馈至第二处理装置,第二处理装置接收Apollo配置变更,重新组装event事件并将event事件发送至第一处理装置。
作为上述技术方案的进一步改进,重新组装event事件发送至第一处理装置后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值。
作为上述技术方案的进一步改进,所述第一处理装置通过反射方式将配置项值赋值给@value的变量值。
作为上述技术方案的进一步改进,所述event事件具体为QrcodeListenerEvent事件。
一种Apollo配置本地化的系统,其特征在于,包括系统、第一处理装置、第二处理装置、变更装置、第一后置处理单元、第二后置处理单元以及第三后置处理单元,所述系统、第一处理装置、第二处理装置、变更装置依次电性连接,所述第一后置处理单元和第二后置处理单元均与系统电性连接,所述第三后置处理单元与第一处理装置连接;
所述系统用于读取Apollo配置项和组装event事件,并将event事件发送给第一处理装置;
所述第一处理装置用于监听event事件和解析event事件,接收event事件并解析收到的内容,判断@value注解信息是否为空,不为空则修改变量值;
所述第二处理装置用于监听Apollo配置项,接收Apollo配置变更以及重新组装event事件并将重新组装的event事件发送给第一处理装置;
所述变更装置用于提供环境给操作人员修改Apollo配置项,并将修改后的Apollo配置项变更信息发送至第二处理装置;
所述第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法;
所述第二后置处理单元用于主动查询Apollo的配制文件的配制项;
所述第三后置处理单元用于监听event事件,从接口的参数可获取报文内容。
本发明的有益效果是:本发明的一种Apollo配置本地化的方法及系统能够减少开发人员的工作的复杂度,提升了系统的性能和稳定性。
附图说明
图1为本发明的结构框架图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
参考图1,本发明揭示了一种Apollo配置本地化的方法,包括下列步骤:
步骤一:启动Spring项目,收集系统@value注解信息;
步骤二:系统启动完成,读取Apollo配置项,组装event事件并发送至第一处理装置;
步骤三:第一处理装置开启event事件监听模式,接收event事件并解析收到的内容,判断@value注解信息是否为空,不为空则修改变量值;
步骤四:第二处理装置开启Apollo监听模式,监听变更装置是否做出信息变更,若监视出变更装置有信息变更,则重新组装event事件后将信号反馈至第一处理装置;
步骤五:重新组装的event事件发送至第一处理装置后,第一处理装置判断@value注解信息是否为空,不为空则修改变量值。
在上述实施例中,所述event事件具体为QrcodeListenerEvent事件,系统包括第一后置处理单元,所述第一后置处理单元用于重新编写帮助扫描注解@value的变量和类信息的方法。本发明启动Spring项目收集@value注解信息前,第一后置处理单元可以在Spring启动过程中能实现扫描到系统的注解@value的变量和类信息,收集系统@value注解信息后添加至系统的容器map中,后续的流程需要用到@value注解的变量和类信息。
进一步的,系统包括第二后置处理单元,所述第二后置处理单元用于查询Apollo配置文件配置项,且将查询到的配置项和对应的配置值组装成event事件,并将event事件发送至第一处理装置。本发明需编写第二后置处理单元,在Spring启动完成后会调用可以自定义类的实现方法onApplicationEvent,此方法可以主动查询Apollo的配置文件的配置项(主动获取Apollo配置项和值需要调用Apollo提供的公共方法),并且将查询到的配置项和对应的配置值组装成QrcodeListenerEvent事件,并且将此事件发送给第一处理装置(第二处理装置也监听接收QrcodeListenerEvent事件),这样处理的作用是为了保证在本地配置项和Apollo配置项相同时,变量值以Apollo配置项为准。
再进一步的,第一处理装置包括用于监听event事件的第三后置处理单元。第三后置处理单元监听到有event事件后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值。
在上述实施例中,本发明的第三后置处理单元用于监听QrcodeListenerEvent事件(此对象为配置文件事件,是从Spring ApplicationEvent事件的扩展,Spring启动读取Apollo配置项和Apollo配置项变更时需要发送QrcodeListenerEvent事件)。监听到有事件后,从第一处理装置的接口可获取报文内容(包含配置项key和配置项值),有哪些配置项需要动态赋值,再结合@value变量信息,比对报文中的配置项key和注解@value中的key,再结合获取到的注解@value的field和object信息,通过反射即可将配置项值赋值给object中的含@value的变量值。
另外,步骤四中,第二处理装置开启Apollo监听后,所述变更装置将Apollo配置变更信息反馈至第二处理装置,第二处理装置接收Apollo配置变更,重新组装event事件并将event事件发送至第一处理装置。重新组装event事件发送至第一处理装置后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值。本发明在spring启动完成后,通过apollo提供的方法实现对配置文件的监听。在整个运行过程中,如果有维护人员需要修改apollo配置项,第二处理装置监听到apollo配置项变更事件,则通过自定义的方法,组装QrcodeListenerEvent事件,且发送QrcodeListenerEvent事件,第三后置处理器监听QrcodeListenerEvent事件,随即能收到Apollo的配置项变更事件,并且将收到的配置项变更动态赋值到相对应的变量上。这样,既可以简化了流程,又提升系统的稳定性。
参考图1,一种Apollo配置本地化的系统,包括系统、第一处理装置、第二处理装置、变更装置、第一后置处理单元、第二后置处理单元以及第三后置处理单元,所述系统、第一处理装置、第二处理装置、变更装置依次电性连接,所述第一后置处理单元和第二后置处理单元均与系统电性连接,所述第三后置处理单元与第一处理装置连接;
所述系统用于读取Apollo配置项和组装event事件,并将event事件发送给第一处理装置;
所述第一处理装置用于监听event事件和解析event事件,并且可以修改变量值;
所述第二处理装置用于监听Apollo配置项,接收Apollo配置变更以及重新组装event事件并将重新组装的event事件发送给第一处理装置;
所述变更装置用于提供环境给操作人员修改Apollo配置项,并将修改后的Apollo配置项变更信息发送至第二处理装置;
所述第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法;
所述第二后置处理单元用于主动查询Apollo的配制文件的配制项;
所述第三后置处理单元用于监听event事件,从接口的参数可获取报文内容。
所述event事件具体为QrcodeListenerEvent事件,系统包括第一后置处理单元,所述第一后置处理单元用于重新编写帮助扫描注解@value的变量和类信息的方法。本发明启动Spring项目收集@value注解信息前,第一后置处理单元可以在Spring启动过程中能实现扫描到系统的注解@value的变量和类信息,收集系统@value注解信息后添加至系统的容器map中,后续的流程需要用到@value注解的变量和类信息。
本发明需编写第二后置处理单元,在Spring启动完成后会调用可以自定义类的实现方法onApplicationEvent,此方法可以主动查询Apollo的配置文件的配置项(主动获取Apollo配置项和值需要调用Apollo提供的公共方法),并且将查询到的配置项和对应的配置值组装成QrcodeListenerEvent事件,并且将此事件发送给第一处理装置(第二处理装置也监听接收QrcodeListenerEvent事件),这样处理的作用是为了保证在本地配置项和Apollo配置项相同时,变量值以Apollo配置项为准。
本发明的第三后置处理单元用于监听QrcodeListenerEvent事件(此对象为配置文件事件,是从Spring ApplicationEvent事件的扩展,Spring启动读取Apollo配置项和Apollo配置项变更时需要发送QrcodeListenerEvent事件)。监听到有事件后,从第一处理装置的接口可获取报文内容(包含配置项key和配置项值),有哪些配置项需要动态赋值,再结合@value变量信息,比对报文中的配置项key和注解@value中的key,再结合获取到的注解@value的field和object信息,通过反射即可将配置项值赋值给object中的含@value的变量值。
本发明在spring启动完成后,通过apollo提供的方法实现对配置文件的监听。在整个运行过程中,如果有维护人员需要修改apollo配置项,第二处理装置监听到apollo配置项变更事件,则通过自定义的方法,组装QrcodeListenerEvent事件,且发送QrcodeListenerEvent事件,第三后置处理器监听QrcodeListenerEvent事件,随即能收到Apollo的配置项变更事件,并且将收到的配置项变更动态赋值到相对应的变量上。这样,既可以简化了流程,又提升系统的稳定性。
本发明的有益效果是:本发明的一种Apollo配置本地化的方法及系统能够减少开发人员的工作的复杂度,提升了系统的性能和稳定性。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围。
Claims (9)
1.一种Apollo配置本地化的方法,其特征在于,包括下列步骤:
步骤一:启动Spring项目,收集系统@value注解信息;
步骤二:系统启动完成,读取Apollo配置项,组装event事件并发送至第一处理装置;
步骤三:第一处理装置开启event事件监听模式,接收event事件并解析收到的内容,判断@value注解信息是否为空,不为空则修改变量值;第一处理装置包括用于监听event事件的第三后置处理单元,第三后置处理单元监听到有event事件后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值;
步骤四:第二处理装置开启Apollo监听模式,监听变更装置是否做出信息变更,若监视出变更装置有信息变更,则重新组装event事件后将信号反馈至第一处理装置;
步骤五:重新组装的event事件发送至第一处理装置后,第一处理装置判断@value注解信息是否为空,不为空则修改变量值。
2.根据权利要求1所述的一种Apollo配置本地化的方法,其特征在于,系统包括第一后置处理单元,所述第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法。
3.根据权利要求2所述的一种Apollo配置本地化的方法,其特征在于,步骤一中,收集系统@value注解信息后添加至系统的容器map中。
4.根据权利要求1所述的一种Apollo配置本地化的方法,其特征在于,系统包括第二后置处理单元,所述第二后置处理单元用于查询Apollo配置文件配置项,且将查询到的配置项和对应的配置值组装成event事件,并将event事件发送至第一处理装置。
5.根据权利要求1所述的一种Apollo配置本地化的方法,其特征在于,步骤四中,第二处理装置开启Apollo监听后,所述变更装置将Apollo配置变更信息反馈至第二处理装置,第二处理装置接收Apollo配置变更,重新组装event事件并将event事件发送至第一处理装置。
6.根据权利要求1所述的一种Apollo配置本地化的方法,其特征在于,重新组装event事件发送至第一处理装置后,第一处理装置获取报文内容,比对报文中的配置项和注解@value两者的数据,再结合获取到的注解@value信息,将配置项值赋值给@value的变量值。
7.根据权利要求6所述的一种Apollo配置本地化的方法,其特征在于,所述第一处理装置通过反射方式将配置项值赋值给@value的变量值。
8.根据权利要求7所述的一种Apollo配置本地化的方法,其特征在于,所述event事件具体为QrcodeListenerEvent事件。
9.一种Apollo配置本地化的系统,其特征在于,包括系统、第一处理装置、第二处理装置、变更装置、第一后置处理单元、第二后置处理单元以及第三后置处理单元,所述系统、第一处理装置、第二处理装置、变更装置依次电性连接,所述第一后置处理单元和第二后置处理单元均与系统电性连接,所述第三后置处理单元与第一处理装置连接;
所述系统用于读取Apollo配置项和组装event事件,并将event事件发送给第一处理装置;
所述第一处理装置用于监听event事件和解析event事件,接收event事件并解析收到的内容,判断@value注解信息是否为空,不为空则修改变量值;
所述第二处理装置用于监听Apollo配置项,接收Apollo配置变更以及重新组装event事件并将重新组装的event事件发送给第一处理装置;
所述变更装置用于提供环境给操作人员修改Apollo配置项,并将修改后的Apollo配置项变更信息发送至第二处理装置;
所述第一后置处理单元用于重新编写能够扫描到系统注解的@value的变量和类信息的方法;
所述第二后置处理单元用于主动查询Apollo的配制文件的配制项;
所述第三后置处理单元用于监听event事件,从接口的参数可获取报文内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159345.3A CN112328322B (zh) | 2020-10-26 | 2020-10-26 | 一种Apollo配置本地化的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159345.3A CN112328322B (zh) | 2020-10-26 | 2020-10-26 | 一种Apollo配置本地化的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328322A CN112328322A (zh) | 2021-02-05 |
CN112328322B true CN112328322B (zh) | 2023-08-01 |
Family
ID=74312193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011159345.3A Active CN112328322B (zh) | 2020-10-26 | 2020-10-26 | 一种Apollo配置本地化的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328322B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489830A (zh) * | 2021-12-23 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 配置页面操作方法、处理方法和计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871774A (zh) * | 2015-01-19 | 2016-08-17 | 杭州迪普科技有限公司 | 基于脚本语言的报文处理方法及装置 |
CN111131472A (zh) * | 2019-12-27 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 一种Apollo配置中心的搭建方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7116812B2 (en) * | 2003-01-29 | 2006-10-03 | General Electric Company | Method and apparatus for providing a standard video interface |
CN101729594B (zh) * | 2009-11-10 | 2013-08-07 | 中兴通讯股份有限公司 | 一种远程配置控制方法和系统 |
CN104980293B (zh) * | 2014-04-02 | 2019-05-31 | 深圳市中兴微电子技术有限公司 | 一种oam报文快速发送和检测处理的方法及装置 |
CN107506213A (zh) * | 2017-08-30 | 2017-12-22 | 深圳市小牛在线互联网信息咨询有限公司 | 动态配置方法、装置、存储介质和计算机设备 |
CN109947464A (zh) * | 2019-03-22 | 2019-06-28 | 优信拍(北京)信息科技有限公司 | 一种配置更新方法及装置 |
CN110321181A (zh) * | 2019-06-28 | 2019-10-11 | 阿里巴巴集团控股有限公司 | Soa体系下的事件生产方法及其装置 |
-
2020
- 2020-10-26 CN CN202011159345.3A patent/CN112328322B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871774A (zh) * | 2015-01-19 | 2016-08-17 | 杭州迪普科技有限公司 | 基于脚本语言的报文处理方法及装置 |
CN111131472A (zh) * | 2019-12-27 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 一种Apollo配置中心的搭建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112328322A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3289605B2 (ja) | ハードウェアリソース管理モジュール共通化方式 | |
CN106375458B (zh) | 服务调用系统、方法及装置 | |
CN103312818A (zh) | 一种车辆诊断方法及服务器 | |
CN106484611B (zh) | 基于自动化协议适配的模糊测试方法和装置 | |
CN112328322B (zh) | 一种Apollo配置本地化的方法及系统 | |
CN112671887B (zh) | 一种资产识别方法、装置、电子设备及计算机存储介质 | |
CN106911666B (zh) | 一种可穿戴智能设备及其消息处理方法、系统 | |
CN106992940B (zh) | 报文处理方法、装置、系统及终端 | |
WO2001004796A1 (en) | External system interface method and system | |
CN113658591A (zh) | 一种面向智能家居的语音交互适配系统 | |
CN110704148B (zh) | 设备页面元素的获取方法、装置、服务器及存储介质 | |
CN108446105A (zh) | 一种轻量级API Server开发框架及开发方法 | |
CN112306871A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110620819A (zh) | 区块链交互方法、装置、计算机设备及可读存储介质 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN111309319A (zh) | 可继承的局数据动态页面配置方法和装置 | |
CN112000618A (zh) | 集群节点的文件变动管理方法、装置、设备及存储介质 | |
CN113515305B (zh) | 配置信息确定方法、配置快照生成方法及装置 | |
US20230333917A1 (en) | Methods for providing compliance indicators for api specifications | |
CN116610387B (zh) | 一种基于动态加载和bitmap实现渠道对接及数据分析方法 | |
CN116319809B (zh) | 数据操作的方法和系统 | |
CN112564953B (zh) | 一种对局远端设备管理的方法和装置及设备 | |
CN116841836B (zh) | 一键式日志收集工具 | |
CN117632445B (zh) | 请求处理方法以及装置、任务执行方法以及装置 | |
CN112633908B (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 |