一种ERP系统升级方法、装置、设备及介质制造方法及图纸

技术编号:39062241 阅读:13 留言:0更新日期:2023-10-12 19:54
本发明专利技术公开了一种ERP系统升级方法、装置、设备及介质,本方法包括:启动新版本ERP系统实例;待新版本ERP系统实例运行正常后,将与新版本ERP系统实例对应的新服务注册到注册中心,并修改负载均衡策略服务;在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,旧版本ERP系统实例运行前期已经收到的业务请求,新版本ERP系统实例运行新接收的业务请求;验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,再对旧版本ERP系统实例停机。本发明专利技术在不影响前端客户使用,也不影响后端接口调用的情况下,通过定制的管理数据流实现了业务数据流的不间断,保证了业务完整性,完成了版本的优雅升级。优雅升级。优雅升级。

【技术实现步骤摘要】
一种ERP系统升级方法、装置、设备及介质


[0001]本专利技术涉及一种ERP系统升级方法、装置、设备及介质。

技术介绍

[0002]现有的ERP系统版本升级时主要包括三部分内容:升级前通告、升级中、升级后处理。
[0003]升级前:先通知相同相关方(包括系统运维、系统使用人、系统相关接口等)在指定的时间系统不可用。
[0004]升级中:系统运维人员需要先关闭系统web访问地址、关闭系统接口,确保不会有新的业务进入。对于会通过API接口调用的相关联系统,需要修改调用规则。另外,系统运维人员还需要关闭系统定时任务,同时登陆系统数据库,确保所有的作业已经完成。当确定作业都已经处理完后,才能停止旧版本的运行实例,启动新版本运行实例。
[0005]升级后:系统运维人员确定新版本运行正常后才可以通知测试人员进行版本验证。要是验证失败,需要对新版本进行回滚,将升级的过程重来一次。另外,不管版本测试是否成功,都需要处理升级期间导致的垃圾数据,包括运维检查时系统无业务,系统随机启动一个线程运行产生的垃圾数据;或者,有业务处理的实例停止运行而产生的垃圾数据;或者,在系统升级过程中因为接口调用失败导致的错误而产生的垃圾数据等。

技术实现思路

[0006]为了提供一种不影响影响前端客户使用,也不影响后端接口调用的ERP系统升级方法,本专利技术实施例提供了一种ERP系统升级方法、装置、设备及介质。具体的:
[0007]一种ERP系统升级方法,至少包括:
[0008]启动新版本ERP系统实例;
[0009]待新版本ERP系统实例运行正常后,将与新版本ERP系统实例对应的新服务注册到注册中心,并修改负载均衡策略服务;
[0010]在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,旧版本ERP系统实例运行前期已经收到的业务请求,新版本ERP系统实例运行新接收的业务请求;
[0011]验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,再对旧版本ERP系统实例停机。
[0012]进一步的,所述启动新版本ERP系统实例,包括:
[0013]利用Jenkins集成工具进行新版本ERP系统实例的编译打包上线,并在Consul注册中心、API Server服务组件、Controller Manager服务组件、业务模块进行相应部署。
[0014]进一步的,所述待新版本ERP系统实例运行正常后,将新的服务注册到注册中心,并修改负载均衡策略服务,包括:
[0015]利用Consul注册中心的ServiceRegister服务完成新版本ERP系统实例的注册,利用Ingress

Control路由实时将新的服务的访问地址同步到负载均衡策略服务。
[0016]进一步的,所述在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,包括:
[0017]利用Consul注册中心的Deregister Service服务卸载旧版本ERP系统实例,利用预设脚本中调用API Server对外提供的API接口,删除serve中的旧版本示例。
[0018]进一步的,所述再对旧版本ERP系统实例停机,包括:
[0019]利用API Server服务组件发起对旧版本ERP系统实例的停机命令;
[0020]API接口接收停机命令后,触发Controller Manager服务组件调用业务模块发起停机;
[0021]业务节点接受到停机命令后,检查自身是否涉及停机前操作,若存在停机前脚本,并检查到执行成功后,不再接受新的web请求,对于已经接收到的请求继续正常处理,处理完毕后再终止应用进程;对于应用内部执行的定时任务,不再启动新的定时任务,并等待当前正在执行的所有定时任务执行完毕,再终止应用进程。
[0022]进一步的,利用API Server服务组件发起停机,包括:
[0023]在jenkins中编写sh脚本,使用curl命名,调用patch接口,更新旧版本的deployment的replicas字段,将replicas改为0。
[0024]进一步的,利用Controller Manager服务组件调用业务模块发起停机,包括:
[0025]将Pod设置为Terminating状态,并从所有Service的Endpoints列表中删除;
[0026]执行PreStop Hook;
[0027]向Pod中的容器发送SIGTERM信号;
[0028]等待指定的时间,等待旧版本的ERP系统业务模块停机,若业务模块在终止宽限期后仍在运行,则发送SIGKILL信号强制旧版本停机。
[0029]进一步的,对于应用内部执行的定时任务,不再启动新的定时任务,并等待当前正在执行的所有定时任务执行完毕,再终止应用进程,具体包括:
[0030]获取Quartz任务调度的多种线程池;
[0031]重复多轮遍历所有线程池判断是否存在任务,若重复多轮遍历所有线程池都没有任何任务则判断当前正在执行的所有定时任务执行完毕。
[0032]另一方面,本专利技术还公开了一种ERP系统升级装置,包括新版本启动模块、新服务注册模块、旧版本卸载模块、旧版本停机模块,其中:
[0033]所述新版本启动模块,用于启动新版本ERP系统实例;
[0034]所述新服务注册模块,用于待新版本ERP系统实例运行正常后,将与新版本ERP系统实例对应的新服务注册到注册中心,并修改负载均衡策略服务;
[0035]所述旧版本卸载模块,用于在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,旧版本ERP系统实例运行前期已经收到的业务请求,新版本ERP系统实例运行新接收的业务请求;
[0036]所述旧版本停机模块,用于验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,再对旧版本ERP系统实例停机。
[0037]本专利技术实施例提供的上述技术方案的有益效果至少包括:
[0038]本专利技术实施例提供的ERP系统升级方法中先启动新版本ERP系统实例,待新版本ERP系统实例运行正常后,将新的服务注册到注册中心,并修改负载均衡策略服务,同时在
注册中心和负载均衡上卸载旧版本ERP系统实例,但是旧版本ERP系统实例并没有停止运行,此后新的业务请求由新版本ERP系统实例承接,旧版本ERP系统实例运行前期已经收到的业务请求。然后就可以开始验证新版本ERP系统实例。通过后台程序确定旧版本业务已经处理完,且新版本验证通过后,才对旧版本ERP系统实例停机。本专利技术实施例在不影响前端客户使用,也不影响后端接口调用的情况下,通过定制的管理数据流实现了业务数据流的不间断,保证了业务完整性,完成了版本的优雅升级。升级过程中不会产生额外的垃圾数据、脏数据,不影响事务一致性,不需要为升级额外做业务补偿,同时大大缩本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种ERP系统升级方法,其特征在于,至少包括以下步骤:启动新版本ERP系统实例;待新版本ERP系统实例运行正常后,将与新版本ERP系统实例对应的新服务注册到注册中心,并修改负载均衡策略服务;在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,旧版本ERP系统实例运行前期已经收到的业务请求,新版本ERP系统实例运行新接收的业务请求;验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,再对旧版本ERP系统实例停机。2.如权利要求1所述的ERP系统升级方法,其特征在于,所述启动新版本ERP系统实例,包括:利用Jenkins集成工具进行新版本ERP系统实例的编译打包上线,并在Consul注册中心、API Server服务组件、Controller Manager服务组件、业务模块进行相应部署。3.如权利要求1所述的ERP系统升级方法,其特征在于,所述待新版本ERP系统实例运行正常后,将新的服务注册到注册中心,并修改负载均衡策略服务,包括:利用Consul注册中心的ServiceRegister服务完成新版本ERP系统实例的注册,利用Ingress

Control路由实时将新的服务的访问地址同步到负载均衡策略服务。4.如权利要求1所述的ERP系统升级方法,其特征在于,所述在注册中心和负载均衡策略服务上卸载旧版本ERP系统实例,包括:利用Consul注册中心的Deregister Service服务卸载旧版本ERP系统实例,利用预设脚本中调用API Server对外提供的API接口,删除serve中的旧版本示例。5.如权利要求1所述的ERP系统升级方法,其特征在于,所述验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,再对旧版本ERP系统实例停机所述再对旧版本ERP系统实例停机,包括:验证新版本ERP系统实例,当旧版本ERP系统实例已处理完前期业务请求,且新版本ERP系统实例验证通过后,利用API Server服务组件发起对旧版本ERP系统实例的停机命令;API接口接收停机命令后,触发Controller Manager服务组件调用业务模块发起停机;业务节点接受到停机命令后,检查自身是否涉及停机前操作,若存在停机前脚本,并检查到执行成功后,不再接受新的web请求,对于已经接收到的请求继续正常处理,处理完毕后再终止应用进程;对于应用内部执行的定时任务,不再启动新的定时任务,并等待当前正在执行的所有定时任务执行完毕,再终止应用进程。6.如权利要求5所述的E...

【专利技术属性】
技术研发人员:付和平杜广源陈士花李喆赵海鹰张伟任勃舟马宏伟刘晓龙戚玮
申请(专利权)人:中国石油天然气集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1