2

我设置了两个相同的 tomcat 服务器,它们托管相同的 Web 应用程序(Sun RI JSF 2 / Tomahawk)。对于负载平衡和故障转移场景,我使用 nginx 服务器作为反向代理,将请求委托给一台或另一台服务器。现在定义了一个 tomcat 作为备份解决方案,以便 tomcat server 1 处理所有请求。当我终止 tomcat 1 的进程时,nginx 很好地将以下请求委托给 tomcat 服务器 2。为了重用会话数据,我将两个 tomcat 服务器配置为使用 memcached 作为会话存储。JSF 被配置为将其状态存储在服务器上。

关于日志文件,这个设置看起来相当不错,会话数据是使用 memcached 服务器读取和存储的。例如,这有助于使用 Web 应用程序,即使 Tomcat 1 已关闭,也无需再次登录。

然而,似乎我的(会话范围的)支持 bean 在分别恢复会话后没有被存储或使用。表单字段留空,应该用会话 bean 中的数据填充。

是否有可能用上述技术做这样的事情?

4

1 回答 1

0

使用 memcached-session-manager 和 OWB,您应该使用 tomcat < 7.0.22,因为在此版本中 ServletRequestListeners 的通知已更改(这是 OWB 用于故障转移支持的机制)。

我目前正在开发与 OWB 和 tomcat >= 7.0.22 一起使用的新版本的 msm。

于 2012-05-27T13:01:36.460 回答