java web统计在线人数怎么搞?

xulianzhen 2016-08-12 04:31:56
想实时计算在线人数,多台服务器,用HttpSessionListener貌似不行。
想用redis,但是redis里不能针对set数据的每个member设置过期时间。求各路大神指导!
...全文
919 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔不思 2016-08-18
  • 打赏
  • 举报
回复
引用 10 楼 zhouren1314 的回复:
页面段可以每个几秒给服务器发请求,服务器在调用 特定统计在线人数服务,可以理解为‘心跳’ , 统计心跳的次数,即为当前在线实时人数
页面段可以每个几秒给服务器发请求,服务器在调用 特定统计在线人数服务,可以理解为‘心跳’ , 由特定服务统计心跳的次数,即为当前在线实时人数,然后在分发给广播给各个服务器。 和二楼理解相符合
乔不思 2016-08-18
  • 打赏
  • 举报
回复
不要仅仅局限于sesssion,会把自己困死在里面的
乔不思 2016-08-18
  • 打赏
  • 举报
回复
页面段可以每个几秒给服务器发请求,服务器在调用 特定统计在线人数服务,可以理解为‘心跳’ , 统计心跳的次数,即为当前在线实时人数
Defonds 2016-08-18
  • 打赏
  • 举报
回复
http 是没有状态的,统计 session 也只能是一个模糊的估值而已
xyzhanh 2016-08-18
  • 打赏
  • 举报
回复
还不如弄ehcache,只要在配置文件里面配置一下就可以了
scoredhigh 2016-08-17
  • 打赏
  • 举报
回复
引用 4 楼 u011086231 的回复:
用session监听器HttpSessionListener或者HttpSessionBindingListener,session创建时把session传入一个session集合,session销毁时把集合中的这个session去除,集合的session个数就是在线人数了
我也有这个疑问,请问如果我关掉页面后,这个可以监听得到session已经结束了吗?
magicnum 2016-08-17
  • 打赏
  • 举报
回复
分布式环境下session是共享的,所以没问题,也可以把session交由redis管理
u011086231 2016-08-16
  • 打赏
  • 举报
回复
用session监听器HttpSessionListener或者HttpSessionBindingListener,session创建时把session传入一个session集合,session销毁时把集合中的这个session去除,集合的session个数就是在线人数了
murongshisan 2016-08-16
  • 打赏
  • 举报
回复
楼上正解 监听session就可以
hvaexlove 2016-08-15
  • 打赏
  • 举报
回复
小白前来学习!
弥悠 2016-08-15
  • 打赏
  • 举报
回复
不会不行啊。多台服务器实质上统计的是每一台服务器的在线人数。你需要一个把多台服务器的在线人数整合在一起的策略。 你可以存放在数据库,不断update和select。也可以对服务器之间做通讯,例如某一台的服务器为主服务器(是否放单独的服务器取决决策者本人)分别统计自己和其它子服务器的总数量。然后子服务器与父服务器之间做长连接。这样每台子服务器的在线人数就是实际上真正的在线人数
京城阿飞 2016-08-12
  • 打赏
  • 举报
回复
Listener监听session

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧