美文网首页
记录redisson-3.8.2升级3.10.7升级过程

记录redisson-3.8.2升级3.10.7升级过程

作者: _Mitch | 来源:发表于2020-04-27 20:52 被阅读0次

2018年公司新项目,使用的最新版本的redisson-3.8.2,然而在后期运行当中,出现了一些问题,问题如下:

1、重新尝试报错,导致本地系统无法提供服务:

image.png

通过在redisson github搜索,找到回答如下:

image.png

2、org.redisson.client.RedisConnectionClosedException: Command succesfully sent, but channel [id: 0x5d21d51b, L:/10.5.86.5:35034 ! R:10.55.4.110/10.55.4.1

image.png

这个bug刚好发生在我们用的3.8.2版本,在3.10.X版本已经修复。

通过查看最新版本3.10.7的源码,发现与3.8.2的区别还在于,问题1中说到的两个参数 threads和nettyThreads也已经优化了,不再是3.8.2默认的0。

image.png

所以我们使用的redisson有必要升级以解决现有的问题。

3、升级步骤

(1)在pom.xml文件中,将

<dependency>
 <groupId>org.redisson</groupId>
 <artifactId>redisson-spring-boot-starter</artifactId>
 <version>3.8.2</version>
</dependency>

替换为

<dependency>
   <groupId>org.redisson</groupId>
   <artifactId>redisson-spring-boot-starter</artifactId>
   <version>3.10.7</version>
   <exclusions>
     <exclusion>
       <groupId>org.redisson</groupId>
       <artifactId>redisson-spring-data-21</artifactId>
     </exclusion>
   </exclusions>
</dependency>
<dependency>
     <groupId>org.redisson</groupId>
     <artifactId>redisson-spring-data-20</artifactId>
     <version>3.10.7</version>
</dependency>

PS:为何要改成这么长?改个版本号不就好了吗?

因为redisson-2.10.7版本默认整合的是springboot 2.1.X版本,然而我们工程使用的是springboot-2.0.5RELEASE版本,所以不兼容,项目虽然能编译通过,但启动会报java.lang.AbstractMethodError: org.redisson.spring.data.connection.RedissonReactiveRedisConnection.close()V这个错,这是因为下面三张图中,图一用到的connetcion.close()方法,在redisson-spring-data-21中,已经被去掉,redisson-spring-data-20中是有的,虽然是空实现,所以我们需要把默认的依赖去掉,再次依赖redisson-spring-data-20版本:

image.png image.png
image.png

(2)修改config类,覆盖默认的序列化类

在redisson3.10.7中,使用的默认的Decoder不再是Jackson了,如图:</pre>

image.png image.png

可以看出,这个是用的java序列化来做decoder了,所以如果我们之前写得代码中,保存的对象,不实现Serializable,就会编解码失败。所以为了使用json序列化,我们还是要把序列化方式改回成Jackson。

修改后的Config类的内容为:

image.png

4、注意事项

版本升级后,一些使用会有修改,比如Topic的使用;请及时关注官方wiki,地址为:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95

5、启动你的项目吧

相关文章

  • 记录redisson-3.8.2升级3.10.7升级过程

    2018年公司新项目,使用的最新版本的redisson-3.8.2,然而在后期运行当中,出现了一些问题,问题如下:...

  • Elasticsearch 升级记录

    前言 本文记录的是 ES 1.5.0 升级到 ES 2.3.3 的过程。包括升级要考虑的要点以及升级过程中遇到的问...

  • 升级targetSdkVersion遇到的问题记录

    最近项目升级targetSdkVersion,下面记录下升级过程中遇到的问题: 问题1、targetSdkVers...

  • Harbor版本升级

    近期harbor漏洞频发,需要频繁升级,官方升级指北令人迷失,这里简略记录下升级过程。 备份 准备更新 更新 回滚...

  • mac 升级(启动/卸载/安装)mysql

    记录一次mysql的升级操作过程mac升级到了Mojave版本后,mysql无法正常启动,正好也很久没有升级过了,...

  • Gitlab跨版本升级

    本文记录Gitlab跨版本升级的具体操作过程。 按照官方的说法,gitlab允许小版本直接升级,大版本需要阶段升级...

  • element-ui el-tabs响应式数据不起作用

    本文档记录element-ui升级导致的问题 前端开发过程中,项目有时不得不升级element-ui,本以为升级很...

  • 记录 Elastic Stack 的升级过程(二)

    上一篇文章《记录 Elastic Stack 的升级过程(一)》,介绍了Elastic Stack的四个组件的升级...

  • centos6升级openssh7.2p2

    centos6自带openssh5.3p1,存在漏洞,升级一下。以下记录了升级的过程: 一.备用远程方案(teln...

  • 升级过程

    说起买房,买房有一个升级的过程。就跟我们玩游戏打怪兽一样,一开始不能去打BOSS,打两下就死了。所以一开始要去打一...

网友评论

      本文标题:记录redisson-3.8.2升级3.10.7升级过程

      本文链接:https://www.haomeiwen.com/subject/nvyuwhtx.html