[发明专利]配置更新方法、装置、系统及电子设备有效
申请号: | 201811364313.X | 申请日: | 2018-11-15 |
公开(公告)号: | CN109462507B | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 许亚明 | 申请(专利权)人: | 北京金山云网络技术有限公司;北京金山云科技有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;G06F9/445;G06F8/65 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王术兰 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 配置 更新 方法 装置 系统 电子设备 | ||
本发明提供了一种配置更新方法、装置、系统及电子设备,该方法包括:从Zookeeper服务器获取配置信息后,利用Java的字节码技术将配置信息转换成配置类,利用类加载器ClassLoader加载配置类并进行实例化,从而得到该配置类对应的实例,将该实例存储Java的上下文环境中,从而自动对存储在该上下文环境中的原配置类进行更新。这样以实例的形式存储配置信息,由于每个实例名称不同,在上下文环境中存储的内存地址不同,且每个实例均配置有时间戳信息;后续配置时根据该实例名称和时间戳信息调取最新实例进行配置更新即可,因此可以避免出现由于直接向内存地址中并发写配置造成的内存泄露或者数据读取错误等问题。
技术领域
本发明涉及信息管理技术领域,尤其是涉及一种配置更新方法、装置、系统及电子设备。
背景技术
随着信息产业的飞速发展,无论是传统的计算机领域还是新兴的移动互联网领域,分布式环境的系统越来越多,有的分布式系统甚至有上百台或者上千台服务器节点。在现有的分布式系统中,更新服务程序或更新某个配置文件需要登录到具体的某台服务器上操作,在越来越庞大的分布式系统环境下,为每台服务器更新文件配置或者程序费时费力。
ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括配置维护、名字服务、分布式同步以及组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。因此可以通过ZooKeeper来提供配置服务。
然而现有技术中,各个服务器从ZooKeeper获取到配置信息后,是以文件的形式,加载到内存中。其中,每次获得的配置信息会写入同一内存地址,这样当存在并发写配置时,可能存在内存泄露或者数据读取错误等问题。
发明内容
有鉴于此,本发明的目的在于提供一种配置更新方法、装置、系统及电子设备,以避免出现并发写配置造成的内存泄露或者数据读取错误等问题。
第一方面,本发明实施例提供了一种配置更新方法,包括:
从Zookeeper服务器获取配置信息;
利用Java的字节码技术将所述配置信息转换为配置类;
将所述配置类加载到类加载器ClassLoader;
对所述类加载器ClassLoader加载的配置类进行实例化,得到对应的实例,其中所述实例配置有时间戳信息;
将所述实例存储于当前的上下文环境中以完成配置更新。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,当接收到配置查询指令时,从所述上下文环境中读取当前存在的各个实例,并进行显示。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述从Zookeeper服务器获取配置信息之前,还包括:
接收所述Zookeeper服务器发送的探测指令,并返回探测应答信息至所述Zookeeper服务器。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,对所述类加载器ClassLoader加载的配置类进行实例化包括:
接收所述Zookeeper服务器发送的配置更新指令;
根据所述配置更新指令,对所述类加载器ClassLoader加载的配置类进行实例化。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述将所述配置类加载到类加载器ClassLoader之后,还包括:
返回接收回执信息至所述Zookeeper服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司;北京金山云科技有限公司,未经北京金山云网络技术有限公司;北京金山云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811364313.X/2.html,转载请声明来源钻瓜专利网。