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()等方法调用。...
- **传统SNA与当代网络**:在个人电脑、工作站和客户端/服务器计算出现之前,SNA是网络领域的主流技术。随着这些新技术的发展,IBM推出了Advanced Peer-to-Peer Networking (APPN) 和 Advanced Program-to-Program ...
Daintree Networks 的 Sensor Network Analyzer(SNA)是一款专为 ZigBee 和 IEEE 802.15.4 标准设计的专业级网络分析工具。该工具通过提供直观的解决方案和独特的可视化工具,帮助用户快速理解和掌握复杂网络的行为...
总的来说,SNA核算体系的引入反映了中国对国际经济标准的接轨和对现代经济结构的反映,但同时也引发了关于价值理论基础的深入思考。如何在尊重马克思主义政治经济学的基础上,理解并运用SNA,是理论界需要面对的挑战...
- **Session Control (SCON):** SCON是SNA网络中的会话控制机制,负责管理两个LU之间的会话建立和终止过程。 - **Control Program (CP):** CP是SNA网络的核心组件之一,负责管理和控制整个网络中的资源分配和通信...
互联网中信誉欺诈行为严重影响了C2C电子商务的发展。如何有效识别互联网上的信誉欺诈商户是当前的研究热点。阐述了将基于交易历史的社会网络分析用于构建C2C电子商务信誉欺诈识别指标体系的原理及过程,通过使用LVQ...
"SNA PD 確認程序" 是针对IBM System Network Architecture(SNA)状态查询的一种工具或过程,旨在帮助用户监控和理解SNA网络中的系统状态。SNA是IBM开发的一种网络通信协议,广泛用于大型机环境,提供了一种在不同...
由于SNA主要是关于网络通信的,因此在Scilab中实现SNA程序意味着我们需要利用Scilab的编程能力来处理网络协议和数据传输问题。 1. **Scilab编程基础**:在开始编写SNA程序之前,必须熟悉Scilab的基本语法和函数库。...
1. **CAS-Center架构**:理解CAS-Center的基本架构,包括认证服务器、服务提供商和服务代理等组件,以及它们之间的交互流程。这包括TGT(Ticket Granting Ticket)的生成、ST(Service Ticket)的请求和验证过程。 ...
资源分类:Python库 所属语言:Python 资源全名:sna_prediction-1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
6. **会话结束**:当游戏交互结束,客户端和服务器通过SNA的正常关闭流程断开连接,释放网络资源。 在实际的网络游戏装置设计中,可能包括以下组件: - **SNA通信模块**:负责处理SNA协议栈的各个层次,执行会话...
1. **智能爬虫**:SNA系统采用先进的网络爬虫技术,能够自动遍历和分析目标网站的结构,识别新闻页面,确保采集的全面性和准确性。 2. **反反爬策略**:面对网站的反爬虫机制,SNA新闻采集系统v1.0.2采用了多种反...
SNA的实施和应用对于政策制定至关重要,因为准确的经济数据可以帮助政府制定有效的财政和货币政策,促进经济增长,提高民生福祉。此外,SNA也是国际间经济比较和贸易谈判的基础,确保各国经济数据具有可比性。 总结...
"SNA"通常指的是Social Network Analysis(社会网络分析),这是一种研究社会结构的方法,通过量化和分析个体之间的关系来揭示网络中的模式和规律。因此,我们可以推测`sna`库可能是一个用于处理和分析网络数据的...
c7200-adventerprisek9_sna-mz.150-1.M.bin
通过分析和理解这个“sna.cpp”源代码,开发者不仅可以了解贪吃蛇游戏的基本实现,还能学习到C++的面向对象编程技巧、游戏循环结构、事件处理和基本的图形界面编程。这是一个很好的实践项目,对于初学者来说,能够...
Social Network Analysis(SNA)是研究社会网络结构和演化的科学方法,旨在揭示社会网络中的关系模式、信息流动和影响力传播机制。以下是社会网络分析的相关知识点: 1. 社会网络的定义: 社会网络是指由个体、组织...