[发明专利]一种中间件的热加载方法、装置、电子设备及存储介质有效
申请号: | 201911001468.1 | 申请日: | 2019-10-21 |
公开(公告)号: | CN110750313B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 燕馨瑞;胡林森;汪国辉 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 中间件 加载 方法 装置 电子设备 存储 介质 | ||
本申请公开了一种中间件的热加载方法、装置、电子设备及存储介质,涉及热加载领域。具体实现方案为:当中间件的配置文件发生变更时,分别获取工作进程以及服务进程发生变更的配置项;将工作进程发生变更的配置项写入到第一隐藏文件中;将服务进程发生变更的配置项写入到第二隐藏文件中;当通过工作进程判断出第一隐藏文件发生更变时,将工作进程发生变更的配置项更新到内存中;当通过服务进程判断出第二隐藏文件发生变更时,将服务进程发变更的配置项更新到内存中。采用本申请的技术方案,当工作进程和服务进程热加载成功时,主进程无需重新建立新的工作进程和新的服务进程,这样可以提高业务稳定性,有效地降低内存峰值。
技术领域
本申请涉及计算机应用技术领域,进一步涉及热加载技术,尤其是一种中间件的热加载方法、装置、电子设备及存储介质。
背景技术
AR分布式DBProxy(以下简称Menu)是一款MySQL中间件服务,遵从MySQL通信协议,提供了读写分离、负载均衡、权限控制等强大的功能。Menu是一个多进程模型,包括1个主进程,1个工作进程和1个服务进程;其中,主进程负责配置中间件的热加载以及工作进程和服务进程的存活判断;工作进程负责针对中间件所有的业务请求,服务进程负责中间件的权限认证相关工作。
当Menu的配置文件发生变更时,目前的Menu的热加载方式为:通过主进程感知到配置文件发生变更,将该配置文件加载到内存;即主进程简单判断配置文件是否发生变更;如配置文件发生变更,则通过主进程重新建立新的工作进程和新的服务进程,再杀死老的工作进程和老的服务进程。由此可见,现有的热加载方式比较暴力,主要存在问题如下:1)配置文件发生变更后,旧的工作进程被杀死,因此旧的工作进程中正在处理的所有请求都会中断,业务会感知到连接断开,造成请求失败,影响服务稳定性,同时也影响DBA的一些运维操作。2)内存开销较大。某个时刻会同时存在主进程、新的工作进程、新的服务进程、旧的工作进程、旧的服务进程,这五个进程同时占用内存;如果集群规模较大,配置文件加载后会占用较大的内存,新老进程同时运行,会占用正常运行态2倍以上的内存。如果PCS线上出现Menu与Mysql同机部署时,Menu热加载占用较多内存,导致Mysql出现无法获取内存,假死的情况。
发明内容
有鉴于此,本申请提出实施例提供一种中间件的热加载方法、装置、电子设备及存储介质,当工作进程和服务进程热加载成功时,主进程无需重新建立新的工作进程和新的服务进程,这样可以提高业务稳定性,有效地降低内存峰值。
第一方面,本申请实施例提供了一种中间件的热加载方法,所述方法包括:
当通过主进程判断出中间件的配置文件发生变更时,通过所述主进程分别将所述中间件的配置文件中的各个配置项与工作进程的配置文件中的各个配置项和服务进程的配置文件中的各个配置项进行对比,获取到所述工作进程发生变更的配置项以及所述服务进程发生变更的配置项;
若所述工作进程支持所述工作进程发生变更的配置项,通过所述主进程将所述工作进程发生变更的配置项写入到第一隐藏文件中;若所述服务进程支持所述服务进程发生变更的配置项,通过所述主进程将所述服务进程发生变更的配置项写入到第二隐藏文件中;
当通过工作进程判断出所述第一隐藏文件发生更变时,通过所述工作进程将所述工作进程发生变更的配置项更新到内存中;当通过所述服务进程判断出所述第二隐藏文件发生变更时,通过所述服务进程将所述服务进程发变更的配置项更新到所述内存中。
上述申请中的一个实施例具有如下优点或有益效果:当中间件的配置文件发生变更时,通过主进程将工作进程发生变更的配置项写入到第一隐藏文件中;通过主进程将服务进程发生变更的配置项写入到第二隐藏文件中;然后工作进程可以将与其对应的发生变更的配置项更新到内存中;服务进程也可以将其对应的发生变更的配置项更新到内存中。这样主进程无需建立新的工作进程和新的服务进程,可以提高业务稳定性,有效地降低内存峰值。
在上述实施例中,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911001468.1/2.html,转载请声明来源钻瓜专利网。