java - Spring session 延迟反序列化
问题描述
我有以下情况,我有一个带有 api 网关和多个下游服务的微服务架构,其中一些有一个独立的会话,这导致我的系统在随机服务调用时抛出过期会话异常。
由于我们无法从头开始重写这些服务,因此我们从引入 hazelcast 开始,以便所有服务可以共享同一个会话。
现在的问题是,当服务写入其他服务在其类路径中没有的类的对象时,会引发反序列化异常。
为了解决这个问题,我在想,如果只有从服务访问的属性被反序列化,我可能会避免异常并且一切都应该正常工作。
您知道春季会议是否可以做到这一点,或者可以建议另一种解决方案,让我解决最初的问题?
这是一个重现我的问题的示例项目:https ://github.com/deathcoder/hazelcast-shared-session
解决方案
首先,我会尽量避免 API 层中的会话。它们的扩展性很差。并且同步会话的可扩展性更差。
尝试改用访问令牌,例如JWT 令牌。令牌应包含足够的用户身份信息以加载处理事务所需的资源(可以缓存资源)。
至于会话中的另一个状态——从流程的角度来看,微服务是自包含的,所以所有的中间结果都应该持久化到数据库中。但当然我不知道您的特定应用程序的细节,所以这只是一个一般性的想法。
推荐阅读
- c# - 如何从 ASP.NET Core MVC 中的视图创建对象
- python - pyspark 2.4.0 中带有 sampleBy 的样本大小
- angular - 如何回到正确的页面
- javascript - VueJS从数字变格
- android - 如何以随机顺序对 Room 数据库进行分页?
- java - Android:是否可以将两个全屏片段链接到一个活动(只使用一个,但选择正确的一个有逻辑)?
- javascript - 在 Apache 服务器上使用带有 GZipped json 文件的 JQuery $.getJSON
- python - 未输入标签(Django)
- azure-data-explorer - Azure 数据资源管理器数据连接数据格式
- cybersource - 如何更新 Flex 令牌的计费信息?