Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在开发一个 webapp 项目,我们正在考虑将它部署在多台服务器上。
您建议使用 Spring 进行集群/负载平衡的解决方案是什么?
有哪些问题需要考虑?
例如:单例在机器集群中的行为如何?会话复制呢?还有其他需要考虑的问题吗?
以下是可能的问题列表(不一定与 Spring 相关):
有状态的 bean - 如果你的 bean 有状态,比如收集某些东西或计数器的集合,你需要考虑是否应该复制这个状态。例如,这个计数器应该是一个 JVM 的本地计数器还是整个集群中的全局计数器?在后一种情况下,请考虑赤土陶器和榛树
文件系统- 只要所有实例使用相同的数据库,一切都很好。但是如果一个节点写入磁盘,其他实例就无法读取它。解决方案?将数据库用于所有存储或分布式文件系统
HTTP 会话- 使用粘性会话或复制会话。如果您进行复制,请尽可能减少会话。
异步作业- 如果您有一个每小时运行的作业,它应该在每台机器上运行,还是只在专用机器上运行(或者可能是随机的)?