【问题标题】:jsf sessions in a web farm网络场中的 jsf 会话
【发布时间】:2010-02-13 12:47:54
【问题描述】:

在 Tomcat 上使用 Spring 构建 JSF 应用程序。目标是一个网络农场,客户要求我们设计我们的应用程序,以便它可以在不依赖 LB 中的“粘性会话”的情况下进行负载平衡。

在 .NET 中,您可以将会话存储配置为 SQL Server 或 ASP.NET 状态服务。 Java 世界中有哪些替代方案?例如,是否有一种标准方法可以插入指向 MySQL 数据库的不同会话状态存储? Spring是否提供任何钩子?

【问题讨论】:

    标签: java tomcat session load-balancing


    【解决方案1】:

    这是特定于 servletcontainer 的,在这种情况下是 Tomcat。 servletcontainer 是管理和提供会话的容器。所以这里JSF和Spring无关。他们只是通过request.getSession() 等从 servletcontainer 透明地获取它。

    在 Tomcat 中,您可以在 webapp 的Context 中提供custom session manager implementation

    <Context ...>
        <Manager className="com.example.SessionManager">
    

    ..其中com.example.SessionManager 根据其合同实现org.apache.catalina.Manager。您可以在其中编写代码以通过数据库支持会话。

    但是,对于您的特定要求,还有其他选择,您可以选择 Tomcat 的内置集群/会话复制功能,而不是使用定制的管理器/数据库重新发明它。在Tomcat Clustering/Session Replication HOW-TO 上阅读更多相关信息。

    【讨论】:

    • 事实证明我们只是在开发中使用 tomcat,而生产站点使用的是 websphere,它有自己的实现 (publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/…)。但是知道这是特定于容器的,就足以提出部署建议。谢谢!
    • 不客气。了解 Websphere 实际上“在幕后”使用 Tomcat 可能很有用。
    猜你喜欢
    • 2013-03-07
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2011-07-13
    相关资源
    最近更新 更多