CN111857863B - 一种动态配置方法及系统 - Google Patents
一种动态配置方法及系统 Download PDFInfo
- Publication number
- CN111857863B CN111857863B CN202010568751.9A CN202010568751A CN111857863B CN 111857863 B CN111857863 B CN 111857863B CN 202010568751 A CN202010568751 A CN 202010568751A CN 111857863 B CN111857863 B CN 111857863B
- Authority
- CN
- China
- Prior art keywords
- configuration
- client
- center
- running track
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000012795 verification Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000002347 injection Methods 0.000 description 5
- 239000007924 injection Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000246 remedial effect Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation 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/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种动态配置方法及系统,包括:获取在应用客户端client运行过程中,client提出的动态调整其运行轨迹的请求;在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心;配置中心根据client推送的所述注解声明生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。client端用一个或者及各类的配置机制配置client运行所需的配置,管理集中方便、简单、提高速度。
Description
技术领域
本发明涉及互联网领域,具体涉及一种动态配置方法及系统。
背景技术
随着互联网高速发展,分布式技术发挥到了极致,同时也产生数量庞大的各类应用。用户需求也在不断变化,服务端应用需要通过配置中心调整配置,进而改变生产环境成千上万个应用的运行轨迹。
配置中心分为两类:一类是静态配置,只在服务启动时进行参数加载,运行过程中不需要改变,如数据库连接、rpc版本等;一种是动态配置,运行过程中也可以在配置平台上进行,实时推送给服务器集群,进而改变程序的运行轨迹,如降级开关、灰度流量等。
开源界比较成熟的动态配置中心有:apollo(携程)、disconf(百度)、diamond(阿里)、spring-cloud-config等等,都具有动态修改配置的能力。他们功能丰富性上也各有优劣,目前业界中apollo最具代表性,使用的公司也最多,具有环境的管理、集群的管理、权限管理、灰度管理、历史配置管理、回滚等功能,且具有高并发高可靠性。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
开源界这些大名鼎鼎的配置中心,虽然功能十分丰富且高可用,但也存在比较明显的问题,在使用上比较繁杂:通过服务接口获取配置,client端配置管理分散。
发明内容
本发明实施例提供一种动态配置方法及系统,client端用一个或者及各类的配置机制配置client运行所需的配置,管理集中方便、简单、提高速度。
为达上述目的,一方面,本发明实施例提供一种动态配置方法,包括:
获取在应用客户端client运行过程中,client提出的动态调整其运行轨迹的请求;
在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心;
配置中心根据client推送的所述注解声明生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。
另一方面,本发明实施例提供一种动态配置系统,包括:配置中心和设置在应用客户端client的动态配置装置,所述动态配置装置包括请求获取单元、配置管理单元和运行调整单元,其中:
请求获取单元,用于获取应用客户端client在运行过程中,client提出的动态调整其运行轨迹的请求;
配置管理单元,用于在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心;
配置中心,用于根据client推送的所述注解声明生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
运行调整单元,用于将配置中心推送的调整自身运行轨迹的配置值反射注入到client自身相应的配置内。
上述技术方案具有如下有益效果:在开启后根据client端的配置,自动在配置中心增加配置,无需手工新增配置,可以像使用本地属性那样简单,并且在client端采用一个或者及各类的配置机制配置client运行所需的配置,管理集中方便、简单、提高速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种动态配置方法的流程图;
图2是本发明实施例的一种动态配置系统的结构图;
图3是本发明实施例的动态配置与现有技术对比示意图;
图4是本发明实施例的动态配置设置的结构框架示意图;
图5是本发明实施例的client与配置中心之间业务传递关系示意图;
图6是本发明实施例的client与配置中心的配置匹配设置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明的实施例,提供一种动态配置方法,包括:
S101:获取在应用客户端client运行过程中,client提出的动态调整其运行轨迹的请求;
S102:在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心23;
S103:配置中心23根据client推送的所述注解声明生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
S104:client将配置中心23推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。
优选地,步骤104具体包括:
S1041:当接收到配置中心23推送的调整client运行轨迹的配置值时,client采用强类型校验配置中心23推送的调整client运行轨迹的配置值与client推送给配置中心23的注解声明所对应的配置是否相匹配,如果相匹配、且配置中心23推送的调整client运行轨迹的配置值与client自身的配置值不同时,client将配置中心23推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。
优选地,所述client将调整其运行轨迹的配置的注解声明推送给配置中心23前,还包括:
S105:client验证调整其运行轨迹的配置的格式,当配置格式为静态且私有时,允许将调整其运行轨迹的配置对应的注解声明推送给配置中心23;
以及,步骤104具体包括:
S1042:client接收到调整client运行轨迹的配置值之后,验证调整client运行轨迹的配置值的获取方式;
S1043:当确认调整client运行轨迹的配置值自配置中心23处获取时,client将配置中心23推送的调整client运行轨迹的配置值反射注入到自身相应的配置内;并且禁止client自身直接修改配置值。
优选地,还包括:
S106:client监测将配置中心23推送的调整client运行轨迹的配置值反射注入到自身相应的配置内是否成功,并将是否成功的监测结果回传配置中心23。
优选地,还包括:
S107:在client启动时,将运行client所需的配置名称和配置初始值传给配置中心23,配置中心23自动生成运行该client的配置;并自动比对配置中心23生成的运行该client的配置与client自身具有的配置是否一致,如配置中心23缺少某个运行该client的配置,则在配置中心23新增所缺少的运行该client的配置。
优选地,还包括:
S108:配置中心23自动生成运行该client的配置的同时,为生成的配置生成全路径名称,所述配置的全路径名称包括包路径、配置类名称和配置名称。
如图2所示,结合本发明的实施例,提供一种动态配置系统,包括配置中心23和设置在应用客户端client的动态配置装置,所述动态配置装置包括请求获取单元21、配置管理单元22和运行调整单元24,其中:
请求获取单元21,用于获取应用客户端client在运行过程中,client提出的动态调整其运行轨迹的请求;
配置管理单元22,用于在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心23;
配置中心23,用于根据client推送的所述注解声明生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
运行调整单元24,用于将配置中心23推送的调整自身运行轨迹的配置值反射注入到client自身相应的配置内。
优选地,所述运行调整单元24,具体包括:
配置值校验子单元241,用于当接收到配置中心23推送的调整client运行轨迹的配置值时,采用强类型校验配置中心23推送的调整client运行轨迹的配置值与client推送给配置中心23的注解声明所对应的配置是否相匹配,如果相匹配、且配置中心23推送的调整client运行轨迹的配置值与client自身的配置值不同时,将配置中心23推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内。
优选地,还包括client格式校验单元25,所述client格式校验单元包括第一格式校验子单元251和第二格式校验子单元252:
第一格式校验子单元251,用于在配置管理单元22将调整其运行轨迹的配置对应的注解声明推送给配置中心23之前,验证调整其运行轨迹的配置的格式,当配置格式为静态且私有时,允许所述配置管理单元22将调整其运行轨迹的配置对应的注解声明推送给配置中心23;
第二格式校验子单元252,用于在运行调整单元24接收到调整client运行轨迹的配置值之后,验证调整client运行轨迹的配置值的获取方式;当确认调整client运行轨迹的配置值自配置中心23处获取时,允许运行调整单元24将配置中心23推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内;并且禁止client自身直接修改配置值。
优选地,还包括:
监控单元26,用于监测运行调整单元24将配置中心23推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内是否成功,并将是否成功的监测结果回传配置中心23。
优选地,还包括:
配置同步单元27,用于在client启动时,将运行client所需的配置名称和配置初始值传给配置中心23;并自动比对配置中心23生成的运行该client的配置与client自身具有的配置是否一致,如配置中心23缺少某个运行该client的配置,则在配置中心23新增所缺少的运行该client的配置;
配置中心23,还用于根据根据运行client所需的配置名称和配置初始值,自动生成运行该client的配置。
优选地,配置中心23,还用于自动生成运行该client的配置的同时,为生成的配置生成全路径名称,所述配置的全路径名称包括包路径、配置类名称和配置名称。
本发明的实施例所取得的有益效果如下:
在开启后根据client端的配置,自动在配置中心增加配置,无需手工新增配置,可以像使用本地属性那样简单,并且在client端采用一个或者及各类的配置机制配置client运行所需的配置,管理集中方便、简单、提高速度。
收到来之配置中心推送的配置值时采用强类型进行校验,使得配置值与其向对应的配置匹配,client正常运行;避免配置值赋值错误,比如将非数值型赋值给数值型,造成线上故障。
还有,采用全路径方法命名配置名称,使得每个配置名称具有唯一性,避免配置名称混乱。
在接收到配置中心推送的配置值后,检测是否将配置值成功,将是否成功传给配置中心,如果不成功,配置中心可采用相应的补救措施。
下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
本发明为一种极简且安全的动态配置中心,如图4所示,是在apollo基础上进行的改造,可用于直播配置中心,具有高易用性及高安全性的优势。
易用性包括:client端集中式进行配置管理,将client应用的所有配置集中在clent端的一个或者几个类中;通过注解本地化配置属性从而弃用接口调用,以及通过配置中心自动生成配置值。
安全性包括:类型强校验、配置名称标准化、配置修改结果可查。
1易用性
1.1集中化管理、简易化使用
如图2、图3、图6所示,将client端的需要使用配置中心的整个应用的所有配置集中在clent端的一个或者几个类中,类是java的基础单元,在client端进行集中式声明(相对分散放置便于开发人员一目了然整个应该用配置),并且是通过注解声明(注解是java的一种语法,简单易用,提升效率。注解简单理解就是一个特殊符号或词),注解在配置类上使用,注解后就将变量和配置中心进行了关联,成为真正的配置,配置中心就可以进行配置值的修改。应用启动时声明了注解的新增配置推送给配置中心,并在配合中心初始化,已经修改完成的老配置从配置中心拉取配置值,进行反射注入(反射是java的一种底层实现,运行期可进行操作修改类及属性);在运行期,配置修改好时,再次将该应用的配置值推送给该应用,该应用接受到配置值后反射注入。那么该应用就可以根据收到的配置值进行相应的调整运行。通过修改配置值后,改变了应用的运行轨迹,所以运行期不需要改造代码进行发布,而达到只需要修改配置值就能调整client逻辑的目的。虽然apollo本身也支持配置注解,注解后的值不仅来自配置平台,也可以来自环境参数、配置文件等等,根据优先级进行参数匹配,这样会带来安全隐患。而本发明新增注解后的配置值只来自配置中心,所以配置集中化管理、使用简易化。
1.2新增配置自动创建
如图5所示,需要新增配置时,即在配置类里增加属性(即配置),只需在client端配置类内新增属性(即配置),启动时自动将client端的配置和配置中心的配置进行比对,看是配置中心否有该应用所对应的配置,如果配置中心没有,就自动在配置中心生成,在配置中心中的新配置的类型为client端的属性类型,初始值为client端的属性的初始值。
2安全性
2.1配置名称全局唯一
client服务启动时自动连接配置中心,将该服务所属配置类中的所有属性在配置中心自动生成(服务第一次启动,以后启动就不用新增了),配置名称按照类全路径+属性名的规则在配置中心自动生成,不仅简化了配置设置的繁琐工作,还避免了配置名称冲突问题。
2.2类型校验
根据业务需要在配置中心修改配置(变量)时,client根据配置类型进行强类型校验(不同语言的变量形式不同,比如java是强类型,JavaScript是弱类型),强类校验是指配置的内容和配置的类型必须配置,避免类型不一致造成推送失败,引发故障。
2.3结果回传
配置中心修改配置后推送到client端,在client端进行反射注入,即通过反射将配置的内容赋值给配置,把反射注入是否成功的最终结果(true或者false)回传给配置中心,能让修改者查看到。如果不成功,配置中心则重新将生成的调整client运行轨迹的配置值推送给client。而目前apollo只能看到推送configserver模块是否成功,推送给client端的配置是否成功未知,虽然修改配置的链路比较长,本发明能够将全链路的结果展示出来,并且细化到集群的每个机器(每个ip)是否反射注入成功。
2.4其他
除此之外,client端新增了配置属性格式校验,必须声明为static静态且private私有,需提供get方法(获取属性),禁止set方法(修改属性),主要是避免开发人员在client端通过代码修改配置属性。
实现一直播单点登录(即为:公司里有很多系统,这些系统只要登录了一个系统,其他系统就自动登录了。所有系统使用相同的用户名密码),结合apollo原有用户权限管理,最终形成简易且安全的用户管控。
之所以选用apollo进行改造,apollo具有其他配置中心不具有的有优点。这里简述下apollo本身的特性。特性包括:集群容灾能力保证了高可靠;admin、config独立设计保证扩展性;长连接采用异步servlet单机可支持上万连接;推拉(所有语言的功能里,指长连接,拉是指短连接,用于系统之间的交互)结合方式保证数据及时及一致性;client端两级存储(内存、本地文件)提高可用性(即使配置中心整个集群挂了可照常运行)。apollo原有功能还包括下:支持用户权限管理、集群配置管理、环境管理、配置历史管理、可回滚、可灰度等。
apollo本身丰富特性及高可靠性,加上本次在易用性及安全性方面的改造加强,最终形成本发明实施例的一直播配置管理中心。
本发明的实施例所取得的有益效果如下:
本发明,在开启后根据client端的配置,自动在配置中心增加配置,无需手工新增配置,可以像使用本地属性那样简单,并且在client端采用一个或者及各类的配置机制配置client运行所需的配置,管理集中方便、简单、提高速度。
收到来之配置中心推送的配置值时采用强类型进行校验,使得配置值与其向对应的配置匹配,client正常运行;避免配置值赋值错误,比如将非数值型赋值给数值型,造成线上故障。
还有,采用全路径方法命名配置名称,使得每个配置名称具有唯一性,避免配置名称混乱。
在接收到配置中心推送的配置值后,检测是否将配置值成功,将是否成功传给配置中心,如果不成功,配置中心可采用相应的补救措施。
以及,根据本发明在配置平台在易用性及安全性的思路,可以在互联网飞速发展的今日,及时开发人员能力各不同,也能够正常提升开发效率,能够降低企业成本。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种动态配置方法,其特征在于,包括:
在client启动时,将运行client所需的配置名称和配置初始值传给配置中心,配置中心自动生成运行该client的配置;并自动比对配置中心生成的运行该client的配置与client自身具有的配置是否一致,如配置中心缺少某个运行该client的配置,则在配置中心新增所缺少的运行该client的配置;
获取在应用客户端client运行过程中,client提出的动态调整其运行轨迹的请求;
在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心;
配置中心根据client推送的所述注解声明自动生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。
2.根据权利要求1所述的动态配置方法,其特征在于,所述client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内,具体包括:
当接收到配置中心推送的调整client运行轨迹的配置值时,client采用强类型校验配置中心推送的调整client运行轨迹的配置值与client推送给配置中心的注解声明所对应的配置是否相匹配,如果相匹配、且配置中心推送的调整client运行轨迹的配置值与client自身的配置值不同时,client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内。
3.根据权利要求1所述的动态配置方法,其特征在于,所述client将调整其运行轨迹的配置对应的注解声明推送给配置中心之前,还包括:
client验证调整其运行轨迹的配置的格式,当配置格式为静态且私有时,允许将调整其运行轨迹的配置对应的注解声明推送给配置中心;
以及,
所述client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内,具体包括:
client接收到调整client运行轨迹的配置值之后,验证调整client运行轨迹的配置值的获取方式;
当确认调整client运行轨迹的配置值自配置中心处获取时,client将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内;并且禁止client自身直接修改配置值。
4.根据权利要求1所述的动态配置方法,其特征在于,还包括:
client监测将配置中心推送的调整client运行轨迹的配置值反射注入到自身相应的配置内是否成功,并将是否成功的监测结果回传配置中心。
5.根据权利要求1所述的动态配置方法,其特征在于,还包括:
配置中心自动生成运行该client的配置的同时,为生成的配置生成全路径名称,所述配置的全路径名称包括包路径、配置类名称和配置名称。
6.一种动态配置系统,其特征在于,包括配置中心、配置同步单元和设置在应用客户端client的动态配置装置,所述动态配置装置包括请求获取单元、配置管理单元和运行调整单元,其中:
配置同步单元,用于在client启动时,将运行client所需的配置名称和配置初始值传给配置中心;并自动比对配置中心生成的运行该client的配置与client自身具有的配置是否一致,如配置中心缺少某个运行该client的配置,则在配置中心新增所缺少的运行该client的配置;
配置中心,用于根据运行client所需的配置名称和配置初始值,自动生成运行该client的配置;
请求获取单元,用于获取应用客户端client在运行过程中,client提出的动态调整其运行轨迹的请求;
配置管理单元,用于在client自身集中式声明的配置类中查找调整其运行轨迹的配置,并将调整其运行轨迹的配置对应的注解声明推送给配置中心;
配置中心,还用于根据client推送的所述注解声明自动生成相应的调整client运行轨迹的配置值,并将生成的调整client运行轨迹的配置值推送给client;
运行调整单元,用于将配置中心推送的调整自身运行轨迹的配置值反射注入到client自身相应的配置内。
7.根据权利要求6所述的动态配置系统,其特征在于,所述运行调整单元,具体包括:
配置值校验子单元,用于当接收到配置中心推送的调整client运行轨迹的配置值时,采用强类型校验配置中心推送的调整client运行轨迹的配置值与client推送给配置中心的注解声明所对应的配置是否相匹配,如果相匹配、且配置中心推送的调整client运行轨迹的配置值与client自身的配置值不同时,将配置中心推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内。
8.根据权利要求6所述的动态配置系统,其特征在于,还包括client格式校验单元,所述client格式校验单元包括第一格式校验子单元和第二格式校验子单元:
第一格式校验子单元,用于在配置管理单元将调整其运行轨迹的配置对应的注解声明推送给配置中心之前,验证调整其运行轨迹的配置的格式,当配置格式为静态且私有时,允许所述配置管理单元将调整其运行轨迹的配置对应的注解声明推送给配置中心;
第二格式校验子单元,用于在运行调整单元接收到调整client运行轨迹的配置值之后,验证调整client运行轨迹的配置值的获取方式;当确认调整client运行轨迹的配置值自配置中心处获取时,允许运行调整单元将配置中心推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内;并且禁止client自身直接修改配置值。
9.根据权利要求6所述的动态配置系统,其特征在于,还包括:
监控单元,用于监测运行调整单元将配置中心推送的调整client运行轨迹的配置值反射注入到client自身相应的配置内是否成功,并将是否成功的监测结果回传配置中心。
10.根据权利要求6所述的动态配置系统,其特征在于,
配置中心,还用于自动生成运行该client的配置的同时,为生成的配置生成全路径名称,所述配置的全路径名称包括包路径、配置类名称和配置名称。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568751.9A CN111857863B (zh) | 2020-06-19 | 2020-06-19 | 一种动态配置方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568751.9A CN111857863B (zh) | 2020-06-19 | 2020-06-19 | 一种动态配置方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857863A CN111857863A (zh) | 2020-10-30 |
CN111857863B true CN111857863B (zh) | 2023-10-27 |
Family
ID=72987764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010568751.9A Active CN111857863B (zh) | 2020-06-19 | 2020-06-19 | 一种动态配置方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857863B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135460A (zh) * | 2013-05-03 | 2014-11-05 | 华为软件技术有限公司 | 一种推送通道保活方法和推送服务器 |
CN106878045A (zh) * | 2016-10-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 业务调用方法及装置 |
CN107506213A (zh) * | 2017-08-30 | 2017-12-22 | 深圳市小牛在线互联网信息咨询有限公司 | 动态配置方法、装置、存储介质和计算机设备 |
CN108268289A (zh) * | 2016-12-30 | 2018-07-10 | 阿里巴巴集团控股有限公司 | web应用的参数配置方法、装置及系统 |
CN108337296A (zh) * | 2018-01-12 | 2018-07-27 | 深圳壹账通智能科技有限公司 | 消息推送处理方法、装置、计算机设备和存储介质 |
CN108833137A (zh) * | 2018-05-18 | 2018-11-16 | 南京南瑞信息通信科技有限公司 | 一种柔性微服务监控框架架构 |
CN109597655A (zh) * | 2017-09-28 | 2019-04-09 | 华为技术有限公司 | 配置应用程序的方法及装置 |
CN109800008A (zh) * | 2018-12-29 | 2019-05-24 | 深圳云天励飞技术有限公司 | 配置更新方法及相关产品 |
-
2020
- 2020-06-19 CN CN202010568751.9A patent/CN111857863B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135460A (zh) * | 2013-05-03 | 2014-11-05 | 华为软件技术有限公司 | 一种推送通道保活方法和推送服务器 |
CN106878045A (zh) * | 2016-10-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 业务调用方法及装置 |
CN108268289A (zh) * | 2016-12-30 | 2018-07-10 | 阿里巴巴集团控股有限公司 | web应用的参数配置方法、装置及系统 |
CN107506213A (zh) * | 2017-08-30 | 2017-12-22 | 深圳市小牛在线互联网信息咨询有限公司 | 动态配置方法、装置、存储介质和计算机设备 |
CN109597655A (zh) * | 2017-09-28 | 2019-04-09 | 华为技术有限公司 | 配置应用程序的方法及装置 |
CN108337296A (zh) * | 2018-01-12 | 2018-07-27 | 深圳壹账通智能科技有限公司 | 消息推送处理方法、装置、计算机设备和存储介质 |
CN108833137A (zh) * | 2018-05-18 | 2018-11-16 | 南京南瑞信息通信科技有限公司 | 一种柔性微服务监控框架架构 |
CN109800008A (zh) * | 2018-12-29 | 2019-05-24 | 深圳云天励飞技术有限公司 | 配置更新方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111857863A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8626778B2 (en) | System and method for conversion of JMS message data into database transactions for application to multiple heterogeneous databases | |
CN110399388A (zh) | 数据查询方法、系统和设备 | |
US8909705B2 (en) | Method and system for use in providing network services interchange | |
US9432469B2 (en) | Automated server controlled client-side logging | |
US11797431B2 (en) | REST API parser for test automation | |
CN113076502A (zh) | 一种基于请求标识的参数控制方法与系统 | |
US11790058B2 (en) | Automated role management for resource accessing code | |
US20220308949A1 (en) | Publishing system, pushing method, application device, receiving device and service management device | |
CN111464646B (zh) | 信息处理方法、装置、电子设备和介质 | |
CN112596956B (zh) | 一种文件系统管理方法、装置及相关组件 | |
US10868719B2 (en) | System and method for federated configuration in an application server environment | |
CN114490889A (zh) | 配置信息处理方法、装置、设备、介质及程序产品 | |
CN111857863B (zh) | 一种动态配置方法及系统 | |
CN115687503A (zh) | 数据库间的数据同步方法、装置、设备及存储介质 | |
US20230359611A1 (en) | Verifying data consistency using verifiers in a content management system for a distributed key-value database | |
CN115811513B (zh) | 第三方接口请求设计方法、装置、存储介质 | |
US9374437B2 (en) | Schema validation proxy | |
US8161520B1 (en) | Methods and systems for securing a system in an adaptive computer environment | |
CN111243715A (zh) | 一种业务系统统一到集成平台的登录方法 | |
CN110851411B (zh) | 一种基于文件同步的dns动态变更系统及方法 | |
CN111488232A (zh) | 开箱即用解决方案级配置以及诊断日志记录和报告的系统和方法 | |
CN113438095A (zh) | 配置数据的管理方法、装置、设备及存储介质 | |
CN116991713B (zh) | 跨环境执行用例的方法、装置、计算机设备及存储介质 | |
US20230376628A1 (en) | Privacy Manager for Connected TV and Over-the-Top Applications | |
US8825686B2 (en) | Expression evaluation over multiple data models |
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 |