Session 使用memcached as会话故障转移恢复JSF应用程序状态
我设置了两个相同的tomcat服务器,它们承载相同的web应用程序(Sun RI JSF 2/Tomahawk)。对于负载平衡和故障转移场景,我使用nginx服务器作为反向代理,将请求委托给一台或另一台服务器。现在定义了一个tomcat作为备份解决方案,以便tomcat服务器1处理所有请求。当我终止tomcat 1的进程时,nginx很好地将以下请求委托给tomcat服务器2。为了重用会话数据,我将两个tomcat服务器配置为使用memcached作为会话存储。JSF被配置为将其状态存储在服务器上 关于日志文件,这个设置看起来很不错,会话数据是使用memcached服务器读取和存储的。例如,这有助于使用web应用程序,即使Tomcat1已关闭,也无需再次登录 尽管如此,似乎我的(会话范围的)支持bean在分别恢复会话后没有被存储或使用。表单字段保留为空,应该用会话bean中的数据填充这些字段Session 使用memcached as会话故障转移恢复JSF应用程序状态,session,jsf,serialization,memcached,restore,Session,Jsf,Serialization,Memcached,Restore,我设置了两个相同的tomcat服务器,它们承载相同的web应用程序(Sun RI JSF 2/Tomahawk)。对于负载平衡和故障转移场景,我使用nginx服务器作为反向代理,将请求委托给一台或另一台服务器。现在定义了一个tomcat作为备份解决方案,以便tomcat服务器1处理所有请求。当我终止tomcat 1的进程时,nginx很好地将以下请求委托给tomcat服务器2。为了重用会话数据,我将两个tomcat服务器配置为使用memcached作为会话存储。JSF被配置为将其状态存储在服务器
使用上面提到的技术是否可以做这些事情?使用memcached会话管理器和OWB,您应该使用tomcat<7.0.22,因为在这个版本中,ServletRequestListeners的通知发生了更改(这是OWB用于故障转移支持的机制)
我目前正在开发一个新版本的msm,它与OWB和tomcat>=7.0.22一起使用。对于memcached会话管理器和OWB,您应该使用tomcat<7.0.22,因为在这个版本中,ServletRequestListeners的通知发生了更改(这是OWB用于故障转移支持的机制)
我目前正在开发一个新版本的msm,它可以与OWB和tomcat>=7.0.22一起使用。为了避免显而易见的问题,会话中需要做的所有事情都已经实现了可序列化的
。我唯一忘记提到的是,我也使用CDI/OWB。为了定位错误,我编写了一个小型计数器应用程序,将计数器值绑定到会话范围的bean。设置保持不变。我意识到,当使用一台或另一台负责服务器发送一些请求时,计数器并没有改变它应该采用的方式。在用Weld替换OWB后,计数器和恢复状态似乎起作用。如果您根本不使用CDI,则同样适用。现在,我将在主应用程序中用Weld替换OWB,并让您知道结果。您是否使用自己的解决方案在memcached或memcached会话管理器()中存储会话?嗨,Martin,我使用您的memcached会话管理器来避免明显的问题,会话中需要执行的所有操作都已经实现了可序列化的。我唯一忘记提到的是,我也使用CDI/OWB。为了定位错误,我编写了一个小型计数器应用程序,将计数器值绑定到会话范围的bean。设置保持不变。我意识到,当使用一台或另一台负责服务器发送一些请求时,计数器并没有改变它应该采用的方式。在用Weld替换OWB后,计数器和恢复状态似乎起作用。如果您根本不使用CDI,则同样适用。现在,我将在主应用程序中用Weld替换OWB,并让您知道结果是什么。您是否使用自己的解决方案在memcached或memcached会话管理器()中存储会话?嗨,Martin,我正在使用您的memcached会话管理器