SNA
(
Share Nothing
Architecture
)最近讨论的蛮多的,大概就是为了应用服务器的可伸缩性,而不在应用服务器端保存状态信息。具体到
J2EE webapp
来说,就是不使用
HttpSession
在本地保存会话状态,而把会话状态保存到其它地方如
Memcached
中,这样部署多个
Tomcat
来服务时,任何机器都可以向客户端提供服务。下面我就服务器端状态数据类型(生命周期)来分析,看看怎样构建高性能的
SNA
。
第一种服务器端状态数据:应用系统运行所需要的数据,如用户权限部分包括用户名、角色名,这些数据是在整个应用系统都必须存在。这部分数据应该保存在
Memcached
中,并且当某个应用页面修改后,要和
Memcached
同步。即应用系统中要保存一份、
Memcached
中也要保存一份,这样当某一
Tomcat
停止服务时,其他正常运行的
Tomcat
可以继续提供服务而不会出现要求重新登入等情况。
第二种服务器端状态数据:在几个页面里传递数据,如多个的注册页面或者查询页面和显示页面分开的情形。这部分数据相对于第一种数据变化较大,如果保存到
Memcached
中的话,要和
Memcached
多次交互访问,所以就直接保存在本地即用
HttpSession
来保存。这样的好处就是不需要和
Memcached
多次交互,而且负载均衡方案最好是使用
IP per Server
,就是每个
IP
即其后续的访问都由一个
Tomcat
来提供服务。当某
Tomcat
停止服务时,只会丢失一部分较少的数据。
第三种服务器状态数据:永久持久化数据如数据库数据。这部分我不是很了解。方案应该有许多,可以把常访问的行数据或者较少行的表数据放到
Memcached
中,应用程序先访问
Memcached
,如果找不到则再访问数据库。(好像超出本文范围呢,等我以后研究清楚再来)
对于第一二种来说,本地
HttpSession
相当于一级
cache
,而
Memcached
则为二级
cache
,这样的应用结构蛮清晰的。
PS:
本人才疏学浅,目前在学习高性能互联网架构,写的有错误的地方,欢迎一起探讨。
分享到:
相关推荐
sna session实现方案实例,稍微修改下即可用于产品
sna集中式session管理实现服务器集群及客户端程序,以“单点登陆、session共享解决方案(2)”为基础建立的服务器机群应用,运行server.bat启动服务器端,将client包导入web工程,通过Client.sessionPut()等方法调用。...
互联网中信誉欺诈行为严重影响了C2C电子商务的发展。如何有效识别互联网上的信誉欺诈商户是当前的研究热点。阐述了将基于交易历史的社会网络分析用于构建C2C电子商务信誉欺诈识别指标体系的原理及过程,通过使用LVQ...
the architecture and protocol introduction of IBM SNA technology
SNA核算体系的理论基础透析.doc
资源分类:Python库 所属语言:Python 资源全名:sna_prediction-1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
IBM社交网络分析资料,很经典的社交网络分析资料
通讯联接时,在通过绑定IP上与SNA进行通讯需要对IP的MAC值进行转换,作者制作了一个小工具,很方便。
SNA program in scilab environment
針對 Ibm sna 狀態查詢,使使用者了解系統狀態
c7200-adventerprisek9_sna-mz.150-1.M.bin
sna lecture notes , erdos reyni
SNA:课程 社交网络分析分配和任务
SNA新闻采集系统v1.0.2 For 动易4.03
在社会网络分析(social network analysis, SNA)中, 中心度和中心势是衡量个人(团队)结构位置和权力指针, 也是刻画权力的关键指标. 基于该理论, 分析了复杂项目组织权力和...
j.sna.2021.112958.pdf
Social network analysis with R sna 包介绍1
cas-center加sna源码所以要分高点可以一起研究
减少延误事件及其后果的可能性是民航运输行业应急管理中的重要课题和研究课题。 但是,大型机场由于参与单位众多,过程复杂,外部环境因素多等特点而成为典型的复杂交通基础设施,决定引发航班延误的风险因素具有...
基于SNA的国际工程项目代理机构选择