构思java集群Session状态共享问题

环境:
前端控制器:Nginx
servlet容器:resin

最近公司想搞集群,但是目前市面上做Nginx集群的大多都是根据用户ip永远访问一台机器,如果这台机器down掉了,那所有的状态就没有了。虽然几率很低,但是还是追求完美的好一点。

下面开始说一下我的思路。
只是简单的以用户登陆状态为例。


建立数据库表,状态表,表中有三个字段, 标识id、用户名、和登陆状态(0为未登录,1为登陆)
用户登陆的时候会把这个用户以key为customer的标识存入session。
创建一个session的监听器。
用户首次登陆,客户端存入cookie,cookie的值的用户名,把用户名设置到表中,把登陆状态设为1,,当session销毁,或者用户手动点击退出的时候更新这个用户在状态表中的字段为0。
当用户再次来访的时候,获得cookie,根据cookie获得用户名,然后根据用户名去状态表查询当前用户是否为登陆状态,如果为登陆状态,就根据用户名查询,得到实体信息,以key为customer存入session,如果为离线状态,就重新登陆并且更新状态表为登陆状态。

感觉说的乱乱的,首先,我说的这个并不是解决单点登陆,单点登陆的话跨域就有了问题,获取不到cookie。

集群,session不能复制,只是解决了共享一些状态与信息。不过觉得用memcached来存取这些数据比较好。


最后,大家不要鄙视我!!我是菜鸟!!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值