一个 Web 系统,通常都有在线人数统计的需求。 按照常规思路应该是首先声明 HttpSessionListener
然后分别在 sessionCreated、sessionDestroyed 回调方法里面做在线人数的加减法。 有过类似经历
的同学想必都知道,sessionCreated 回调的触发,并不是通常以为的用户客户端首次连接后发生的,而
是在首次真正的 session 存取操作时才真正被触发,比如:
HttpSession session = request.getSession();
首次 session 存取操作时,才真正创建 session 实例,从而触发 sessionCreated 的监听回调。
我现在的系统,学习了 SNA 的做法,完全抛弃了 session 的概念。 客户端只通过 cookie 记录用户Id
之类的标识信息,用户登录后,服务端通过 cookie userId 再向 cache module 拿取用户的详细信息。
这样做的目的跟 SNA 的设计目标一致,是为了以后的水平扩展。
现在面临的问题是,为了统计在线人数,我不得不在某一个全局缺省的 interceptor 里面读取 session,
以触发 session 实例的创建,从而触发 sessionCreated 的监听回调。 本来系统已经实现了 SNA,完全
不再需要 session了, 现在又不得不为此创建一堆无用的 session 实例。 就算现在暂时容忍了这一点,
以后做节点水平扩展的时候,还得面临节点间的在线人数广播通知的问题。。。
用 cookie 来解决这个问题,也不是非常的方便。 因为匿名连接,是要计入在线的。 但是初次访问的用户,
并没有 userId 之类的 cookie 信息,服务端为了区分不同的匿名个体,还需要给客户端 cookie 回写一
些唯一匿名标识。 总之是很繁琐。
不知道大家在处理类似 SNA 的结构方式时,怎么处理这样的问题。
分享到:
相关推荐
sna session实现方案实例,稍微修改下即可用于产品
the architecture and protocol introduction of IBM SNA technology
sna集中式session管理实现服务器集群及客户端程序,以“单点登陆、session共享解决方案(2)”为基础建立的服务器机群应用,运行server.bat启动服务器端,将client包导入web工程,通过Client.sessionPut()等方法调用。...
SNA核算体系的理论基础透析.doc
资源分类:Python库 所属语言:Python 资源全名:sna_prediction-1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
IBM社交网络分析资料,很经典的社交网络分析资料
通讯联接时,在通过绑定IP上与SNA进行通讯需要对IP的MAC值进行转换,作者制作了一个小工具,很方便。
网络游戏-SNA网络体系下交互数据的传输方法及装置.zip
SNA program in scilab environment
針對 Ibm sna 狀態查詢,使使用者了解系統狀態
淘宝用的是JBoss,框架是iBATIS,缓存服务器是自己开发的,基本遵循SNA架构,水平扩展,数据库是Oracle,阿里集团的DBA几乎是国内最强悍的。目前淘宝的系统架构正在重构,计划用两到三年时间重写,目标有两个:1、...
c7200-adventerprisek9_sna-mz.150-1.M.bin
sna lecture notes , erdos reyni
SNA新闻采集系统v1.0.2 For 动易4.03
互联网中信誉欺诈行为严重影响了C2C电子商务的发展。如何有效识别互联网上的信誉欺诈商户是当前的研究热点。阐述了将基于交易历史的社会网络分析用于构建C2C电子商务信誉欺诈识别指标体系的原理及过程,通过使用LVQ...
SN算法 社交网络分析(SNA)的一些算法 这些算法位于我为我最后一年的论文————工作的一个更大项目的背景下。
j.sna.2021.112958.pdf
论文研究-基于SNA的复杂项目组织权力量化及实证.pdf, 在社会网络分析(social network analysis, SNA)中, 中心度和中心势是衡量个人(团队)结构位置和权力指针, 也是刻画...
cas-center加sna源码所以要分高点可以一起研究
Social network analysis with R sna 包介绍1