【问题标题】:Apache vs Weblogic session timesApache 与 Weblogic 会话时间
【发布时间】:2012-05-29 01:11:40
【问题描述】:

我正在开发一个网络应用程序,该应用程序存储有关会话的一些信息,它必须保持活跃至少 2 小时。 (有点像购物车)。

我在多个 weblogic 实例前使用 Apache。 Apache 用于缓存 + 只是一些 RR 平衡。

在我的 web.xml 中,我配置了 120 分钟的会话时间。

但现在我想知道所有这些 Apache 设置 像一般的“Timeout,KeepAlive,KeepAliveTimeout”

还有我可以在“balance-config”中指定的那些,目前是

SetHandler weblogic-handler

WebLogicCluster serv1:port1,ser2:port2

ConnectTimeoutSecs 10

ConnectRetrySecs 2

KeepAliveEnabled 开启

KeepAliveSecs 15

WLCookieName WLBALANCECOOKIENAME

所以在这里我可以指定另一个 KeepAliveEnabled / KeepAliveSecs

我是否必须将所有内容都设置为 keepalive=YES 并将秒数设置为 7200+? 这确保我的 web.xml 的 2 小时会话超时将得到尊重?

一般的“超时”我可能可以放低一些,因为据我了解,这是针对长请求/响应的。

【问题讨论】:

    标签: apache session weblogic session-timeout stateful


    【解决方案1】:

    KeepAlive 未链接到 weblogic 上的会话超时。

    Apache 服务器中的KeepAlive 用于通过使用从 Apache 插件到 WebLogic Server 的可重用连接池来提高性能。如果连接处于非活动状态超过 30 秒(或用户定义的时间量),则连接将关闭并返回到池中。

    仍然建议将 KeepAlive 设置为 ON,并将 KeepAliveSecs 设置为默认值 15。

    现在谈谈启用 2 小时会话超时的主要问题。注意:2 小时是一个很高的时间(默认只有 30 分钟),您的 Weblogic 服务器将使用更多内存来保持会话详细信息有效。

    我假设您依赖 Apache 根据用户的 JSESSIONID 定向到正确的 Weblogic 服务器。在这种情况下 - Apache 会将请求发送到集群中正确的 Weblogic 服务器 - 并且用户的会话将在该服务器上保持活动状态。除非你打开会话复制,这是另一个内存占用者。

    但要回答您的问题,您的 120 分钟应根据 web.xml 中的 <session-timeout> 设置得到尊重 也可以在 weblogic.xml 中设置,但最重要的是 web.xml

    【讨论】:

    • 感谢您的回复,因此我从您的解释中了解到,apache 超时和 keepalive 设置与我的 weblogic 会话没有任何关系。但我一直想知道的是,我像你说的那样使用 SessionID 进行负载平衡。但是 apache 也会记住它使用该 sessionId 发送先前请求的哪个服务器,并将再次发送相同的请求,但是.. apache 记住这一点多长时间?哪个 apache-setting 配置了这个?因为此设置必须超过 2 小时,所以即使在 1 小时 50 分钟不活动等情况下,我的所有请求也必须保持在同一台服务器上。
    • 不,apache对此视而不见。 apache 中的代理插件检查对 JsessionId 的请求并从中提取 serverid。它进行纯粹的传递,不会记住或将传入的客户端请求映射到出站 weblogic 实例。查看另一个答案的示例serverfault.com/a/364812/37747
    猜你喜欢
    • 2010-12-24
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2021-04-25
    • 2014-04-01
    • 2018-06-02
    • 1970-01-01
    相关资源
    最近更新 更多