一种分布式动态配置更新方法及分布式服务器系统与流程
本发明涉及分布式系统配置管理,尤其是涉及一种分布式动态配置更新方法及分布式服务器系统。
背景技术:
1、分布式服务架构下的配置热更新是指在服务器的服务进程无需重启、停机的前提下,动态完成业务配置参数的实时更新与生效,是保障分布式服务器系统稳定运行、提升业务迭代效率的核心技术。
2、当前,传统的配置更新方案的配置推送过程仅能实现缓存参数的修改,在进行配置更新时,需要依赖服务器框架在服务器中全量扫描匹配配置字段,缺乏精准的配置绑定关系索引定位机制,无法精准、定向更新服务进程内部的托管对象成员字段。尤其在国产中间件模块化加载环境下,极易出现配置注解扫描失败的问题,无法快速精准地匹配到需要进行更新的目标配置字段,大幅降低了服务器配置数据热更新的整体效率。
技术实现思路
1、有鉴于此,本申请提供了一种分布式动态配置更新方法及分布式服务器系统,主要目的在于解决对服务器的配置数据进行热更新的效率较低的技术问题。
2、根据本发明的第一个方面,提供了一种分布式动态配置更新方法,所述方法应用于分布式服务器系统中的服务器中,所述分布式服务器系统包括控制器以及至少一个服务器,所述方法包括:
3、从所述控制器处接收配置变更信息,其中,所述配置变更信息包括标识键以及属性配置值;
4、获取预设的托管对象注册表,在所述托管对象注册表中确定与所述标识键对应的配置绑定信息,并基于所述配置绑定信息,在进程运行内存中调取目标托管对象;
5、基于所述属性配置值,对所述目标托管对象对应的托管对象成员字段的属性值进行修改,以完成业务服务进程的配置更新。
6、在一个可选的实施例中,所述配置变更信息中还包括版本号;所述服务器中设置有版本对照表,所述版本对照表中记录有多个标识键,以及每个标识键对应的对照版本号;所述在所述托管对象注册表中确定与所述标识键对应的配置绑定信息之前,所述方法还包括:在所述版本对照表中确定所述标识键对应的对照版本号,并判断所述配置变更信息中的版本号是否小于或等于所述对照版本号;若所述版本号小于或等于所述对照版本号,则将所述配置变更信息丢弃,若所述版本号大于所述对照版本号,则执行所述在所述托管对象注册表中确定与所述标识键对应的配置绑定信息的步骤,并在在所述版本对照表中,将所述标识键对应的对照版本号的号码数值加一。
7、在一个可选的实施例中,所述基于所述属性配置值,对所述目标托管对象对应的托管对象成员字段的属性值进行修改,以完成业务服务进程的配置更新,包括:确定所述属性配置值是否为基于加密算法进行加密的加密信息,在所述属性配置值为加密信息时,基于白盒密码解密算法对所述加密信息进行解密操作,得到解密信息;基于所述解密信息,对所述目标托管对象对应的托管对象成员字段的属性值进行修改,以完成业务服务进程的配置更新。
8、根据本发明的第二个方面,提供了一种分布式服务器系统,所述分布式服务器系统包括控制器以及至少一个服务器,其中,所述服务器用于执行如上述的分布式动态配置更新方法;
9、所述控制器用于从远端的上位机接收配置变更信息,其中,所述配置变更信息包括操作人员标识、时间戳信息、标识键以及属性配置值;
10、所述控制器还用于基于所述操作人员标识进行权限验证,在所述操作人员标识通过所述权限验证时,基于所述操作人员标识、所述时间戳信息、所述标识键以及所述属性配置值生成操作日志信息,并将所述操作日志信息发送到所述上位机,并将所述配置变更信息下发到每个所述服务器。
11、在一个可选的实施例中,所述控制器通过广播的方式,将所述配置变更信息下发到每个所述服务器中;所述服务器在接收到所述配置变更信息后,将自身的源节点标识设置到所述配置变更信息中,并将所述配置变更信息发送到分布式服务器系统中每个其他的服务器。
12、在一个可选的实施例中,当所述服务器从其他的服务器接收到配置变更信息时,确定所述配置变更信息中是否存在自身的源节点标识;当所述配置变更信息中存在自身的源节点标识时,将所述配置变更信息丢弃。
13、在一个可选的实施例中,所述控制器还用于获取业务工程代码,并将所述业务工程代码部署到每个服务器的类字节码存放目录中,其中,所述业务工程代码中的可配置托管对象的托管对象成员字段处预先配置有声明注解信息,所述声明注解信息包括标识键以及默认配置值;所述服务器还用于在自身的类字节码存放目录中提取所述业务工程代码,并确定所述业务工程代码的可配置托管对象的托管对象成员字段处的声明注解信息中的标识键,并基于所述标识键,确定所述服务器的缓存中是否存在与所述标识键对应的预设配置值,在所述缓存中存在与所述标识键对应的预设配置值时,将所述预设配置值赋值给所述托管对象成员字段。
14、在一个可选的实施例中,在所述服务器的缓存中不存在与所述标识键对应的预设配置值时,所述服务器还用于确定所述分布式服务器系统中的其他的服务器的缓存中是否存在与所述标识键对应的预设配置值,在其他的服务器的缓存中存在与所述标识键对应的预设配置值时,获取所述预设配置值,将所述预设配置值赋值给所述托管对象成员字段。
15、在一个可选的实施例中,在其他的服务器的缓存中不存在与所述标识键对应的预设配置值时,将所述默认配置值赋值给所述托管对象成员字段。
16、在一个可选的实施例中,每个所述服务器中设置有中间件;所述服务器获取与所述中间件的类型对应的类加载器,并基于所述类加载器在所述类字节码存放目录中提取出所述业务工程代码。
17、本发明提供的一种分布式动态配置更新方法及分布式服务器系统,通过预设托管对象注册表存储配置绑定关系,避免了使用传统方案依赖框架进行全量扫描匹配字段的低效方式,能够依据配置变更信息的标识键,快速精准定位到进程内存内部的目标托管对象及对应的成员字段,案弥补了传统方案缺乏精准索引定位机制、仅能更新缓存参数的缺陷,可直接定向更新业务托管对象成员字段,省去了冗余的扫描适配操作,有效提升了分布式服务器配置热更新的精准度与执行效率,稳定保障了分布式系统配置实时迭代更新的业务需求。
18、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
1.一种分布式动态配置更新方法,其特征在于,所述方法应用于分布式服务器系统中的服务器中,所述分布式服务器系统包括控制器以及至少一个服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述配置变更信息中还包括版本号;所述服务器中设置有版本对照表,所述版本对照表中记录有多个标识键,以及每个标识键对应的对照版本号;
3.根据权利要求1所述的方法,其特征在于,所述基于所述属性配置值,对所述目标托管对象对应的托管对象成员字段的属性值进行修改,以完成业务服务进程的配置更新,包括:
4.一种分布式服务器系统,其特征在于,所述分布式服务器系统包括控制器以及至少一个服务器,其中,所述服务器用于执行如权利要求1至3中任意一项所述的分布式动态配置更新方法;
5.根据权利要求4所述的分布式服务器系统,其特征在于,所述控制器通过广播的方式,将所述配置变更信息下发到每个所述服务器中;
6.根据权利要求5所述的分布式服务器系统,其特征在于,当所述服务器从其他的服务器接收到配置变更信息时,确定所述配置变更信息中是否存在自身的源节点标识;
7.根据权利要求4所述的分布式服务器系统,其特征在于,所述控制器还用于获取业务工程代码,并将所述业务工程代码部署到每个服务器的类字节码存放目录中,其中,所述业务工程代码中的可配置托管对象的托管对象成员字段处预先配置有声明注解信息,所述声明注解信息包括标识键以及默认配置值;
8.根据权利要求7所述的分布式服务器系统,其特征在于,在所述服务器的缓存中不存在与所述标识键对应的预设配置值时,所述服务器还用于确定所述分布式服务器系统中的其他的服务器的缓存中是否存在与所述标识键对应的预设配置值,在其他的服务器的缓存中存在与所述标识键对应的预设配置值时,获取所述预设配置值,将所述预设配置值赋值给对应的托管对象成员字段。
9.根据权利要求8所述的分布式服务器系统,其特征在于,在其他的服务器的缓存中不存在与所述标识键对应的预设配置值时,将所述默认配置值赋值给对应的托管对象成员字段。
10.根据权利要求7所述的分布式服务器系统,其特征在于,每个所述服务器中设置有中间件;所述服务器获取与所述中间件的类型对应的类加载器,并基于所述类加载器在所述类字节码存放目录中提取出所述业务工程代码。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com