从Springboot 1.5.x迁移到2.1.x

时间:2019-08-23 11:44:55

标签: java spring spring-boot redis

上下文

我们有一个微服务生态系统,其中包含+100个Web应用程序(休息服务,展示柜,有角度的...)。这些应用使用的是Spring Boot 1.5.x,我们的目的是将其升级到Springboot 2.1.x

所有这些应用共享一个会话对象,该对象存储在Amazon的Redis数据库中。在该会话对象中,我们拥有自己的东西以及Spring使用并自动存储的其他一些对象(例如Spring Security的 SecurityContextImpl )。

问题

我们遇到了许多反序列化问题,这是由于Spring在会话(Redis)中存储的大多数对象在较旧的版本(例如 SecurityContextImpl )中无法反序列化。 / p>

示例

  1. 应用程序A在SB 1.5.x中,并使用应用程序B(SB 2.1.x)登录。
  2. 应用程序B成功登录用户,更新Redis中的会话信息,并将控制权返回给应用程序A。
  3. 应用程序A尝试从Redis检索会话对象,但是反序列化过程失败,会话重新启动。

意图

通过这种行为,每当请求到达具有不同版本SB的应用程序时,我们都将失去用户会话。

我们想要的是逐步迁移这些应用程序,避免必须同时完成的大规模升级。

有没有解决此问题的方法?

0 个答案:

没有答案