JDK升级到1.8 方案

背景:

随着4.x的系统改造深入和进展,后续将会启动5.x,架构部已先行研究了5.x需要用到的部分技术,其中有不少是基于JDK1.8进行的。所以,我们考虑将先行的JDK1.7升级到JDK1.8.

 

分析:

JDK升级主要关注点:

1.系统内部组件(jar)的兼容性

2.系统运行的容器支持

3.系统间jar包(接口)依赖的兼容

 

整体升级策略:

逐渐升级,由上而下,通过不断尝试,找出升级可能出现的问题。ps:已用管理员账号登入jenkins查过,是可以支持配置多个jdk版本的。

 

步骤:

1.从dubbo和mq等管理平台上拉出系统整体上的调用层次关系。(或者人工梳理)

2.找出被依赖最少的几个系统,然后挑最不重要的系统,作为测试系统;

  测试系统建议涵盖多种技术类型(无需同时),如web,dubbo,mq,Job,pc,手机端等。

  链路层次短的关联系统一并参与测试。

  对于少数依赖系统已升级,被依赖系统来不及升级的情况,将依赖方提供的接口层代码用低版本jdk打包后,供被依赖方使用。

3.切分支,升级开发环境jdk,修改问题,记录过程。

4.jenkins打包

5.一测发布x系统及对应的关联系统(含java环境升级)

6.排查、修复发现的问题,记录过程。

7.发布到二测

8.排查、修复发现的问题,记录过程。

9.发布到生产并验证及修复

10.升级成功

 

备注:

关于回滚操作:

1.原则上不建议安排回滚,主要通过充分的测试进行问题排除,对于微量遗漏的问题,上线后作为bug处理。

2.对于最初的或最重要的系统升级,如果考虑回滚,则准备一套相同配置的新设备发布完成后,停机切换,如果验证失败,则向反方向进行切换。具体步骤暂略。

 

经验汇总:

待升级的系统分两种情况:

  1. 要升级系统的被0个系统依赖

POM中添加依赖包

<dependency>

   <groupId>org.javassist</groupId>

   <artifactId>javassist</artifactId>

   <version>3.18.2-GA</version>

 </dependency>

  1. 要升级的系统被大于0个系统依赖

POM中添加依赖包

<dependency>

   <groupId>org.javassist</groupId>

   <artifactId>javassist</artifactId>

   <version>3.18.2-GA</version>

 </dependency>

同时提供1.7的jar给依赖方

猜你喜欢

转载自blog.csdn.net/damoneric_guo/article/details/113876141