gpt4 book ai didi

java - 集群环境中 Spring session 范围 bean 和 Java 静态对象的行为

转载 作者:行者123 更新时间:2023-11-29 03:18:06 25 4
gpt4 key购买 nike

在集群环境中,我知道 HttpSession 对象会从一个 VM 迁移到另一个 VM。但是,如果我将信息存储在 Spring session 范围的 bean 中或将信息存储在类的静态 Map 中怎么办?存储的数据会发生什么变化?

最佳答案

存储在静态变量中的信息对于加载该类的类加载器来说是本地的,它不会被迁移。您(或 Spring)放入 HttpSession 中的任何内容都会被迁移,因为应用程序服务器负责提供 session 并且它知道其他节点在哪里,并且可以将其设置为专门执行此操作。

这是静态变量(和你自己的缓存)有问题的原因之一,因为你可以用它们构建一个在一台服务器上运行良好的应用程序,但如果你将它部署到多个节点,它就不会也能正常工作,因为缓存彼此不一致。

要迁移不在 HttpSession 中的数据,必须配置某种缓存 ( Spring supports plugging in different caching providers)。

关于java - 集群环境中 Spring session 范围 bean 和 Java 静态对象的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25312648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com