首页 > 解决方案 > Spring session 延迟反序列化

问题描述

我有以下情况,我有一个带有 api 网关和多个下游服务的微服务架构,其中一些有一个独立的会话,这导致我的系统在随机服务调用时抛出过期会话异常。

由于我们无法从头开始重写这些服务,因此我们从引入 hazelcast 开始,以便所有服务可以共享同一个会话。

现在的问题是,当服务写入其他服务在其类路径中没有的类的对象时,会引发反序列化异常。

为了解决这个问题,我在想,如果只有从服务访问的属性被反序列化,我可能会避免异常并且一切都应该正常工作。

您知道春季会议是否可以做到这一点,或者可以建议另一种解决方案,让我解决最初的问题?

这是一个重现我的问题的示例项目:https ://github.com/deathcoder/hazelcast-shared-session

标签: javahazelcastspring-session

解决方案


首先,我会尽量避免 API 层中的会话。它们的扩展性很差。并且同步会话的可扩展性更差。

尝试改用访问令牌,例如JWT 令牌。令牌应包含足够的用户身份信息以加载处理事务所需的资源(可以缓存资源)。

至于会话中的另一个状态——从流程的角度来看,微服务是自包含的,所以所有的中间结果都应该持久化到数据库中。但当然我不知道您的特定应用程序的细节,所以这只是一个一般性的想法。


推荐阅读