SpringBoot1.5.x升级到2.2.1踩坑
SpringBoot1.5.x升级到2.2.1踩坑
SpringCloud版本升级到了Hoxton,于是开始把现有项目从springboot1.5.x->2.2.1 Springcloud Dalston.RELEASE ->Hoxton.RELEASE。进行升级使用
springboot1.5.x->2.2.1 Springcloud Dalston.RELEASE ->Hoxton.RELEASE
项目集成的有consul ,sofaRPC, zookeeper ,升级过程中遇到相当多的坑:
- 直接无法启动 也不报错 “Disconnected from the target VM, address: ‘127.0.0.1:65296’, transport: 'socket’”控制台就这一条日志;
- rpc生产者注册成功 但是 sofarpc 无法发布服务;查看rpc日志 user /logs/rpc/rpc-registry.log 只显示开始发布,并没有发布成功 “com.alipay.sofa.rpc.registry.zk.ZookeeperConfigObserver - Receive updateAll data”这样 才是标识发布成功,可被调用
- 无法读取配置的数据源;
解决方法
1:系统使用了 logback收集日志,同时集成了“logstash-logback-encoder”版本4.8,由于4.8版本过低,升级到最新版本6.1.0解决无法启动;
2:zookeeper客户端使用的是3.4.13,集成的zookeeper版本太高,冲突导致,,固定zookeeper版本 我使用的是3.4.8
sofaRPC相关jar集成版本统一:curator-framework 2.11.1 curator-recipes2.11.1
3:mysql-connection 版本升级到8.0以上 数据源配置只支持driver-class-name: com.mysql.cj.jdbc.Driver
注意zookeeper中的log 和 curator-framework 中的log 版本冲突
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.8</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.11.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>