一种分布式配置中心及其JAVA运行实例的替换方法与流程

文档序号:30341524发布日期:2022-06-08 08:08阅读:71来源:国知局
一种分布式配置中心及其JAVA运行实例的替换方法与流程
一种分布式配置中心及其java运行实例的替换方法
技术领域
1.本发明涉及一种分布式配置中心及其java运行实例的替换方法,属于软件开发技术领域。


背景技术:

2.市面上有springcloudconfig等多种配置中心,是一种key-value配置,配置更新后,java类实例中变量值同等更新;但是无法替换运行中的java类实例,无法即时更改java类中代码逻辑;如果需要更换需要重新发布代码,对于几百上千的集群式部署应用则有漫长的等待时间。


技术实现要素:

3.本发明的目的是提供一种分布式配置中心及其java运行实例的替换方法,以解决目前分布式配置中心无法直接进行java实例替换的问题。
4.本发明为解决上述技术问题而提供一种分布式配置中心,所述的配置中心设置有数据库表,用于保存生成的java类代码;所述配置中心将用于配置的增删改查服务作为一个jar包引入到应用中;定时拉取配置类,对比拉取的配置类的时间戳是否和对应正在运行实例中的加载的配置类的时间戳一致,若不一致,则对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例。
5.本发明在配置中心建立用于保存生成的java类代码的数据库表,将用于配置的增删改查服务作为一个jar包引入到应用中,通过定时拉取配置类,在时间戳不一致时,能够对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例,以替换旧的运行实例。可见本发明的配置中心能够直接将经过配置的java类代码重新加载成运行实例,节省了运行实例替换的时间,提高了运行实例替换的效率。
6.进一步地,为减少内存的占用,及时释放不用的内存空间,在生成最新的运行实例时将旧实例所占用的内存空间回收。
7.进一步地,为方便对java类代码的编译,所述配置中心采用toolprovider对java类代码进行重新编译。
8.进一步地,为方便实现配置数据的增删改查服务,所述配置中心提供配置数据的增删改查服务,以应用编码字段区分不同应用,以分类字段区分不同场景的配置数据,以key字段表示唯一配置数据,value字段表示所配置的数据,type字段区分数据类型。
9.进一步地,若定时拉取的配置类为普通类型配置时,则给予变量赋值。
10.进一步地,定时拉取配置类由jar包实现。
11.本发明还提供了一种分布式配置中心java运行实例的替换方法,该替换方法的过程如下:在配置中心建立数据库表,用于保存生成的java类代码;将用于配置的增删改查服务作为一个jar包由配置中心引入应用;定时拉取配置类,对比拉取的配置类的时间戳是否和正在运行实例中的加载的配置类的时间戳一致,若不一致,则对java类代码进行重新编
updatecurrent_timestamp comment'更新时间',
32.primary key(`id`)using btree
33.)engine=innodb auto_increment=80default charset=utf8mb4row_format=dynamic comment='配置中心数据表';
34.通过上述代码即可实现数据库表的创建。
35.2.建立配置中心服务。
36.配置中心用于实现配置服务,因此,需要提供配置的增删改查管理界面,其中增指的是配置数据的保存,删指的是配置数据删除,改指的配置数据的更改,查指的是配置数据的查询,这是一种web端常用的管理界面。服务向注册中心注册,提供配置数据的增删改查管理端,为了多应用系统使用,数据以应用编码字段区分不同应用系统,以分类字段区分不同场景的配置数据,以key字段表示唯一配置数据,value字段表示所配置的数据,type字段区分数据类型;服务提供应用注册配置:注册appid服务提供注解获取配置数据:根据本地数据时间戳判断是否更新执行。
37.3.应用引入配置中心jar包,进行运行实例的替换。
38.本发明将增删改查服务作为一个jar包引入到应用中,使用jar包api配置appid,使用jar包注解配置value值,配置定时拉取数据频率;按照配置的频率定时从库表中读取(拉取)配置类数据,判断其时间戳是否一致,这里的时间戳指的是该数据配置生成的时间以及本地时间,若不一致,则对该配置类数据的配置类型进行判断,如果type=map是普通类型配置,则给予变量赋值;如果type=class是java类代码,则从数据库表中找到其对应的java类代码,并对该java类代码按照最新的配置重新编译和重新加载,生成相应的运行实例。编译时采用toolprovider进行重新编译,加载时采用classloader进行重新加载
39.4.利用新生成的运行实例替换旧的运行实例。
40.将步骤3生成的新的运行实例加载后,释放旧的运行实例所占用的内存空间,从而实现运行实例的动态配置。
41.通过上述过程,本发明能够通过配置中心直接对运行实例的替换,快速解决大型集群线上问题,避免机器数量多发布流程时间长的问题。
42.方法实施例
43.首先配置中心建立数据库表,用于保存生成的java类代码;然后将用于配置的增删改查服务作为一个jar包由配置中心引入应用;定时拉取配置类,对比拉取的配置类的时间戳是否和对应正在运行实例中的加载的配置类的时间戳一致,若不一致,则对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例。该方法的具体实现流程已在配置中心实施例中进行了详细说明,这里不再赘述。


技术特征:
1.一种分布式配置中心,其特征在于,所述的配置中心设置有数据库表,用于保存生成的java类代码;所述配置中心将用于配置的增删改查服务作为一个jar包引入到应用中;定时拉取配置类,对比拉取的配置类的时间戳是否和对应正在运行实例中的加载的配置类的时间戳一致,若不一致,则对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例。2.根据权利要求1所述的分布式配置中心,其特征在于,在生成最新的运行实例时将旧实例所占用的内存空间回收。3.根据权利要求1所述的分布式配置中心,其特征在于,所述配置中心采用toolprovider对java类代码进行重新编译。4.根据权利要求1或3所述的分布式配置中心,其特征在于,所述配置中心提供配置数据的增删改查服务,以应用编码字段区分不同应用,以分类字段区分不同场景的配置数据,以key字段表示唯一配置数据,value字段表示所配置的数据,type字段区分数据类型。5.根据权利要求4所述的分布式配置中心,其特征在于,若定时拉取的配置类为普通类型配置时,则给予变量赋值。6.根据权利要求1或2所述的分布式配置中心,其特征在于,定时拉取配置类由jar包实现。7.一种分布式配置中心java运行实例的替换方法,其特征在于,该替换方法的过程如下:在配置中心建立数据库表,用于保存生成的java类代码;将用于配置的增删改查服务作为一个jar包由配置中心引入应用;定时拉取配置类,对比拉取的配置类的时间戳是否和正在运行实例中的加载的配置类的时间戳一致,若不一致,则对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例。8.根据权利要求7所述的分布式配置中心java运行实例的替换方法,其特征在于,该方法还包括在生成最新的运行实例时将旧实例所占用的内存空间回收的步骤。9.根据权利要求7或8所述的分布式配置中心java运行实例的替换方法,其特征在于,所述的增删改查服务以应用编码字段区分不同应用,以分类字段区分不同场景的配置数据,以key字段表示唯一配置数据,value字段表示所配置的数据,type字段区分数据类型。10.根据权利要求7或8所述的分布式配置中心java运行实例的替换方法,其特征在于,若定时拉取的配置为普通类型配置时,则给予变量赋值。

技术总结
本发明涉及一种分布式配置中心及其JAVA运行实例的替换方法,属于软件开发技术领域。本发明在配置中心建立用于保存生成的java类代码的数据库表,将用于配置的增删改查服务作为一个jar包引入到应用中,通过定时拉取配置类,在时间戳不一致时,能够对java类代码进行重新编译,并重新加载最新时间戳的配置类以生成最新的运行实例,以替换旧的运行实例。可见本发明的配置中心能够直接将经过配置的java类代码重新加载成运行实例,节省了运行实例替换的时间,提高了运行实例替换的效率。提高了运行实例替换的效率。提高了运行实例替换的效率。


技术研发人员:崔灿
受保护的技术使用者:数字郑州科技有限公司
技术研发日:2022.03.07
技术公布日:2022/6/7
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1