6

我正在开发一个 webapp 项目,我们正在考虑将它部署在多台服务器上。

您建议使用 Spring 进行集群/负载平衡的解决方案是什么?

有哪些问题需要考虑?

例如:单例在机器集群中的行为如何?会话复制呢?还有其他需要考虑的问题吗?

4

1 回答 1

11

以下是可能的问题列表(不一定与 Spring 相关):

  • 有状态的 bean - 如果你的 bean 有状态,比如收集某些东西或计数器的集合,你需要考虑是否应该复制这个状态。例如,这个计数器应该是一个 JVM 的本地计数器还是整个​​集群中的全局计数器?在后一种情况下,请考虑

  • 文件系统- 只要所有实例使用相同的数据库,一切都很好。但是如果一个节点写入磁盘,其他实例就无法读取它。解决方案?将数据库用于所有存储或分布式文件系统

  • HTTP 会话- 使用粘性会话或复制会话。如果您进行复制,请尽可能减少会话。

  • 异步作业- 如果您有一个每小时运行的作业,它应该在每台机器上运行,还是只在专用机器上运行(或者可能是随机的)?

于 2012-08-02T09:57:10.980 回答