鉴于 JavaServer Faces 在服务器端本身就是有状态的,建议使用哪些方法来水平扩展 JSF 2.0 应用程序?
如果一个应用程序运行多个 JSF 服务器,我可以想象以下场景:
- 粘性会话:将与给定会话匹配的所有请求发送到同一服务器。
- 问题:通常使用什么技术来实现这一点?
- 问题:服务器故障导致会话丢失......并且通常看起来像脆弱的架构,尤其是在重新开始时(不尝试扩展现有应用程序)
- 状态(会话)复制:在集群中的所有 JSF 服务器上复制 JSF 状态
- 问题:通常使用什么技术来实现这一点?
- 问题:无法缩放。集群总内存 = 最小服务器上的总内存
- 指示 JSF(通过配置)将其状态存储在外部资源上(例如,另一台运行非常快的内存数据库的服务器),然后在需要应用程序状态时从 JSF 服务器访问该资源?
- 问:这可能吗?
- 指示 JSF(通过配置)是无状态的?
- 问:这可能吗?
[编辑]
根据 Ravi 对 Sticky Sessions 的建议进行了更新