1、前提
目前微服务 版本信息
spring boot 1.5.13 ;Edgware.SR4 ;
2019.8.1 Springboot 1.x 版本已经停止维护,boot需要升级为 2.X版本 。Zuul1.x 停止更新, spring-cloud-gateway 功能 比Zuul 1.x功能全面。用 gateway 更换Zuul 替换网关。Eurake闭源,注册中心后期可考虑Consul 或 Nacos 替换。
升级之前采坑准备
Spring Boot 2.1.2 & Spring Cloud Greenwich 升级记录
2、框架升级
先将 注册中心,网关,配置中心 服务版本升级到 Greenwich.SR2版本
cloud服务框架升级完成后,若无时间升级业务服务,则可暂停业务服务升级使用。
注:spring-cloud-gateway 搭建时 无需引用 spring-boot-starter-web,否则会出现冲突
3、业务服务升级
因业务服务,涉及到 FeignClient 调用,需要将服务调用方和提供方 保持同一cloud版本,否则将出现服务调用失败情况。
3.1、组件升级
涉及到 ftp组件,mysql组件,redis组件,mq组件,common工具包,mongdb组件升级。
上述组件中,spring-boot-starter-parent 版本升级为 2.1.3.RELEASE,目的和服务中parent 版本保持一致,防止出现未知异常。
注:
1.mysql组件升级时,pagehelper-spring-boot-starter 采用高版本 如将 1.1.1 升级为 1.2.3 ;mybatis-spring-boot-starter 采用高版本 1.3.1 升级为 2.1.0
2.redis组件升级时,spring-boot-starter-data-redis 需要排除 lettuce-core 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.10.1</version>
</dependency>
3.2、业务服务升级
feign依赖更改
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
client服务提供 需要加上 ContextId 防止bean名称注册重复
@FeignClient(value = "rnjf-apate-data",contextId = "GxbBLoginClient",path = ApateDataConstants.BASE_PATH + "/bank/gxb", fallback = GxbBLoginHystrix.class)
jackson-core : 采用高版本 2.6.1 升级为 2.9.5
logstash :4.7 升级到5.2
配置文件中,
spring.cloud.client.ipAddress 改为 spring.cloud.client.ip-address
server.contextPath 改为 server.servlet.context-path
https://stackoverflow.com/questions/50900677/registered-driver-with-driverclassname-org-gjt-mm-mysql-driver-was-not-found
数据库驱动名称 mysql-connet-java.8.0.15 中 cj目录下
com.mysql.jdbc.Driver需要改为com.mysql.cj.jdbc.Driver
com.zaxxer.hikari.util.DriverDataSource:<init>:68 Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.