jsf-2 - JSF 2.0 应用程序的水平扩展

标签 jsf-2 cluster-computing stateful web-architecture horizontal-scaling

鉴于 JavaServer Faces 在服务器端本质上是有状态的,建议使用哪些方法来水平扩展 JSF 2.0 应用程序?

如果一个应用程序运行多个 JSF 服务器,我可以想象以下场景:

  1. 粘性 session :将与给定 session 匹配的所有请求发送到同一服务器。
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:服务器故障会导致 session 丢失...并且通常看起来是脆弱的架构,尤其是在重新开始时(不尝试扩展现有应用程序)
  2. 状态( session )复制:在集群中的所有 JSF 服务器上复制 JSF 状态
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:无法扩展。集群总内存=最小服务器总内存
  3. 指示 JSF(通过配置)将其状态存储在外部资源上(例如,运行非常快的内存数据库的另一台服务器),然后在需要应用程序状态时从 JSF 服务器访问该资源?
    • 问题:这可能吗?
  4. 指示 JSF(通过配置)为无状态?
    • 问题:这可能吗?

[编辑]

针对 Ravi 的粘性 session 建议进行了更新

最佳答案

这可以通过在粘性 session 模式下配置负载均衡器来实现。

更多 info

这样您的所有后续请求都会发送到同一应用程序服务器。

关于jsf-2 - JSF 2.0 应用程序的水平扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166883/

相关文章:

html - primefaces:如何在 <p:layoutUnit> 中禁用 css

jsf-2 - ExternalContext.dispatch() 不起作用

cluster-computing - 在 Apache NiFi 中创建双节点集群时连接被拒绝

c - openMPI 在服务器集群上运行期间无限等待?

java - 跨集群共享 java 对象

flutter - 如何完全处理我的 Stateful Widget?

jsf-2 - 在 JSF 中动态创建表列

jsf-2 - 以编程方式访问 JSF 和 Primefaces 版本号

Java 持久化应用程序无状态与有状态

java - 在有状态处理中,您应该如何处理由于从未达到缓冲区大小而未处理的数据?