继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spring Cloud Alibaba升级到2.1.0

2019-11-06 23:46:0411360浏览

大目

1实战 · 133手记
TA的实战

TIPS

本文基于Spring Cloud Greenwich SR3编写,理论支持Spring Cloud Greenwich所有版本。

对于非Greenwich版本,请前往 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明 查看Spring Cloud与Spring Cloud Alibaba的版本兼容性关系,自行升级到对应的兼容版本。例如:你用的是Spring Cloud Finchley,那么应使用Spring Cloud Alibaba 2.0.0,以此类推。

最近,Spring Cloud Alibaba已经从Spring Cloud孵化器中孵化成功。孵化成功后的最新版本是2.1.0。这一节来详细探讨如何将Spring Cloud Alibaba从0.9.0升级到2.1.0。

从0.9.0开始,Maven的Group id发生了变化!

  • 0.9.0的Group id是 org.springframework.cloud
  • 0.9.0以上的版本是 com.alibaba.cloud

这看起来还挺吓人的,而且此前也引发了一些吐槽。其实这主要是由于Spring Cloud考虑简化自己的Release Train(即:Spring Cloud自身的版本管理),于是修改了发布政策:非Spring Cloud团队维护的Spring Cloud的子项目,一律使用自己的GroupId即可,不再强制使用 org.springframework.cloud

图片描述

从功能上讲,Spring Cloud Alibaba 2.1.0和0.9.0区别并不大,所以升级还是比较轻松的。下面列出升级的具体步骤:

一、升级依赖管理器

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  <version>0.9.0.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

修改为:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  <version>2.1.0.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

其实就是改个groupId以及version。

二、升级Starter

将Spring Cloud Alibaba所有相关的Starter依赖(主要是以 spring-cloud-starter-alibaba- 开头的依赖),的groupId,全部更换成com.alibaba.cloud

例如:将:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

修改为:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

三、升级Server软件版本

由于Spring Cloud Alibaba使用了Nacos、Sentinel Dashboard、RocketMQ,所以还得升级这三款软件的Server端。

TIPS

普及一个技巧:可根据客户端版本,去下载相同版本/兼容版本的Server端。

举个例子:

  • 通过分析,可以发现 spring-cloud-starter-alibaba-nacos-discovery 使用了Nacos Client 1.1.1,所以下载Nacos Server 1.1x 肯定是兼容的。

当然,其实在官方文档 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

分别下载:

  • Nacos Server 1.1.x
  • Sentinel Dashboard 1.6.x
  • RocketMQ 4.4.x(笔者经过测试,使用RocketMQ 4.5.1也是OK的)

笔者使用的是如下版本,下载地址点击即可跳转。

百度盘下载加速器地址在:https://git.imooc.com/coding-358/resource 里面有贴。

四、修正编译报错

如果你使用了原Spring Cloud Alibaba的一些类,那么升级后,很可能会报错。这主要是因为,Spring Cloud Alibaba的包名结构也发生了变化。原先的包结构是 org.springframework.cloud.xxx ,升级后包名也改成了com.alibaba.cloud.xxx

重新导一下包一下就OK了。

···················
欢迎关注课程:
面向未来微服务:Spring Cloud Alibaba从入门到进阶

打开App,阅读手记
11人推荐
发表评论
随时随地看视频慕课网APP

热门评论

大目老师好,我有个问题不知道怎么解决所以过来请教一下。同样的项目在mac系统下服务调不通报错feign.RetryableException: Read timed out executing GET XXX,但是windows10下是好的,这是我提的issue:https://github.com/alibaba/spring-cloud-alibaba/issues/1072,望老师解答,双十二优惠届时一定会买老师的课。

大目老师,当spring cloud alibaba 版本改成 2.1.0 对应的sentinel 版本1.6.3 发现课程中的8-5的流控配置一节中的链路模式失效,这个是因为1.6.3 增加了Web Servlet过滤器中改用统一的上下文名称。这个如何修改?

查看全部评论