一种Spring微服务的管理方法、装置及存储介质与流程

文档序号:36491211发布日期:2023-12-26 20:06阅读:43来源:国知局
一种的制作方法

本技术涉及一种计算机软件开发,尤其涉及一种spring微服务的管理方法、装置及存储介质。


背景技术:

1、微服务产品(如spring微服务)的私有化部署包由很多微服务的jar包组成,假设微服务产品包含50个微服务、jar包体积均为100m,那么微服务产品的私有化部署包的体积将到达5g。并且,微服务jar的重复依赖非常多,使得微服务产品的绝大部分体积都被外部依赖占用。因此,有必要减少微服务产品的私有化部署包的体积。

2、目前,减少私有化部署包的体积的思路主要是:通过java构建工具(如maven、gradle)将外部依赖存放在公共依赖目录中。比如,假设50个微服务都依赖某个1m大小的jar包,这个jar会重复出现50次占用50m的体积,如果放到公共依赖目录那么将只占用1m,即通过将外部依赖放在公共依赖目录,能够减少60%-90%的体积。

3、然而,java构建工具要求微服务具有相同版本的依赖,如果微服务的依赖版本不一致,会导致公共依赖目录出现多个版本的依赖包,这就会使得java程序在加载类时会发生异常。并且,微服务产品一般由多个团队共同开发,每个团队拥有独立的java工程,不同团队的依赖版本也不一致。

4、综上,有必要提供一种spring微服务的管理方案,该方案能够在瘦身私有化部署包体积的同时避免依赖冲突。


技术实现思路

1、本技术实施例提供一种spring微服务的管理方法、装置及存储介质,以解决相关技术存在的问题,技术方案如下:

2、第一方面,本技术实施例提供了一种spring微服务的管理方法,包括:

3、获取spring微服务的私有化部署包;

4、解压所述私有化部署包,找到启动脚本和所有微服务的jar包;

5、解压任一所述jar包,将微服务启动方式切换成使用暴露在文件系统的class文件和jar包启动;

6、使用md5值,重命名/boot-info/lib目录下的目标jar包,所述目标jar包为spring微服务启动时打包的依赖包;

7、将带有md5值的目标jar包移动至公共依赖目录,并在/boot-info/lib目录下生成所述带有md5值的目标jar包的关联信息;

8、修改所述启动脚本指定的java程序入口;

9、将修改后的启动脚本和所述带有md5值的目标jar包重新压缩,获得spring微服务的新私有化部署包。

10、在一种实施方式中,使用md5值,重命名/boot-info/lib目录下的目标jar包包括:

11、遍历/boot-info/lib目录下的每个所述目标jar包,计算每个所述目标jar包的目标md5值;

12、使用所述目标md5值重命名每个所述目标jar包。

13、在一种实施方式中,所述关联信息为指向所述带有md5值的目标jar包的软链,所述软链的名称为所述带有md5值的目标jar包的原名称。

14、在一种实施方式中,所述软链为linux软链接。

15、在一种实施方式中,修改所述启动脚本指定的java程序入口包括:

16、在所述启动脚本的命令行中,将所述启动脚本指定的java程序入口修改为org.springframework.boot.loader.jarlauncher。

17、在一种实施方式中,所述方法还包括:

18、获取客户提供的漏洞清单;

19、从所述公共依赖目录中,查找修复版本的第一jar包,所述第一jar包为不存在所述漏洞清单中的漏洞的一版jar包;

20、验证所述第一jar包通过后,将所述第一jar包反馈给所述客户;

21、将所述客户修复漏洞后获得的新第一jar包移动到所述公共依赖目录中,并将所述第一jar包的关联信息替换为所述新第一jar包的关联信息,删除所述第一jar包;

22、重启所述spring微服务。

23、在一种实施方式中,验证所述第一jar包通过包括:

24、对所述第一jar包进行冒烟测试,测试无问题时,确定所述第一jar包通过验证。

25、第二方面,本技术实施例还提供了一种spring微服务的管理装置,包括:

26、解压单元,用于获取spring微服务的私有化部署包;解压所述私有化部署包,找到启动脚本和所有微服务的jar包;解压任一所述jar包,将微服务启动方式切换成使用暴露在文件系统的class文件和jar包启动;

27、管理单元,用于使用md5值,重命名/boot-info/lib目录下的目标jar包,所述目标jar包为spring微服务启动时打包的依赖包;将带有md5值的目标jar包移动至公共依赖目录,并在/boot-info/lib目录下生成所述带有md5值的目标jar包的关联信息;修改所述启动脚本指定的java程序入口;将修改后的启动脚本和所述带有md5值的目标jar包重新压缩,获得spring微服务的新私有化部署包。

28、在一种实施方式中,所述管理单元具体用于:

29、遍历/boot-info/lib目录下的每个所述目标jar包,计算每个所述目标jar包的目标md5值;

30、使用所述目标md5值重命名每个所述目标jar包。

31、在一种实施方式中,所述关联信息为指向所述带有md5值的目标jar包的软链,所述软链的名称为所述带有md5值的目标jar包的原名称。

32、在一种实施方式中,所述软链为linux软链接。

33、在一种实施方式中,所述管理单元具体用于:

34、在所述启动脚本的命令行中,将所述启动脚本指定的java程序入口修改为org.springframework.boot.loader.jarlauncher。

35、在一种实施方式中,所述管理单元还用于:

36、获取客户提供的漏洞清单;

37、从所述公共依赖目录中,查找修复版本的第一jar包,所述第一jar包为不存在所述漏洞清单中的漏洞的一版jar包;

38、验证所述第一jar包通过后,将所述第一jar包反馈给所述客户;

39、将所述客户修复漏洞后获得的新第一jar包移动到所述公共依赖目录中,并将所述第一jar包的关联信息替换为所述新第一jar包的关联信息,删除所述第一jar包;

40、重启所述spring微服务。

41、在一种实施方式中,所述管理单元具体用于:

42、对所述第一jar包进行冒烟测试,测试无问题时,确定所述第一jar包通过验证。

43、第三方面,本技术实施例还提供了一种计算机装置,该计算机装置包括:存储器和处理器,所述存储器中存储指令,所述指令由所述处理器加载并执行,以实现上述各方面任一种实施方式中的方法,其中,所述存储器和所述处理器通过内部连接通路互相通信。

44、第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,当计算机程序在计算机上运行时,实现上述各方面任一种实施方式中的方法。

45、上述技术方案中的优点或有益效果至少包括:

46、在本技术通过将依赖包移动到公共依赖目录下,大大减少了私有化部署包的体积,并通过使用jar包的关联信息指向公共依赖目录的依赖包,同时,通过为公共依赖目录下的jar包增加md5值,可以避免同名不同内容的jar包发生冲突,从而可以解决多版本依赖冲突的问题。

47、同时,本技术通过替换有漏洞的jar包,实现了漏洞热修复,避免重新出程序包,流程短且耗时少,大大降低了漏洞修复的成本。

48、上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本技术进一步的方面、实施方式和特征将会是容易明白的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1