`

SNA -- Shared Nothing Architecture研究

阅读更多

      现在我们的项目用户session都存放在每个web server中ThreadLocal还保存,如果是多个服务器部署的web app的话,需要每台服务器同步共享Session。

<?xml version="1.0"?>  
<jboss-web>  
<replication-config>  
<replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>  
<replication-granularity>SESSION</replication-granularity>  
<replication-field-batch-mode>true</replication-field-batch-mode>  
</replication-config>  
</jboss-web>

 

         最近那就了一下SNA发现这种方式确实是一种很好解决session在web contianer中共享的方式。     

      Shared Nothing Architecture(无分享架构)是一个分布式的架构,每个节点都是独立的。典型的SNA系统会集中存储状态的信息,如:数据库中,内存cache中;不在节点上保存状态的信息。
       对于server集群,若将session等状态保存在各个节点上,那么各个节点的session复制会极大的影响性能;若采用SNA,保持每个节点的无状态性,不再使用session来保持全局的状态,而是将session直接放在数据库中,在数据库前再加一层分布式Cache(推荐使用memcached),这样将可极大的提高性能,当改变session中的对象时,同步到cache和数据库。

      对Web Servers做集群时如果将session等状态保持在各个节点上,这样状态的复制就很成问题,所以SNA告诉你在节点上不要保存状态,session这种东西可以存在数据库或内存缓存中嘛,然后cookie或URL中带一个加密string用来查询session状态就可以完美解决session状态了。

      但显然这给数据库增加了压力,但是数据库的处理能力比Web Servers做session复制要好多了。况且我们在数据库前加一memcached将大量的数据库Reads的工作做了,而数据库只用处理数量不多的Writes工作,这大大提高了系统的性能。每个Web Server节点里不用cache,而是外部分布式memcached或session server,这同时避免了cache-coherence问题。

           对于大型的互联网应用的话,未来一定要通过无session状态化,session中心化的方式解决,通过memcached方式存储session,并设置memcached的过期时间,这样可以降低应用的耦合度,增强了扩展性,提高服务器处理的吞吐量。 

分享到:
评论

相关推荐

    c7200-adventerprisek9_sna-mz.150-1.M.bin

    c7200-adventerprisek9_sna-mz.150-1.M.bin

    c7200-adventerprisek9_sna-mz.152-4.M1.bin

    GNS3三层设备镜像文件----适合GNS3三层设备的镜像文件!

    c2691-adventerprisek9-sna-mz.124-13b.bin

    c2691-adventerprisek9-sna-mz.124-13b.bin

    c2691-adventerprisek9_sna-mz.124-25d.bin

    c2691-adventerprisek9_sna-mz.124-25d.bin 可以用作交换机实验,使用简单。

    PyPI 官网下载 | sna-0.0.9.tar.gz

    《PyPI官网下载:探索sna-0.0.9.tar.gz中的Python库知识》 在Python的世界里,PyPI(Python Package Index)是开发者分享和获取Python软件包的重要平台。资源`sna-0.0.9.tar.gz`正是这样一个在PyPI上发布的软件包,...

    Python库 | sna-0.0.8.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:sna-0.0.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    swu-sna-paper-review

    标题“swu-sna-paper-review”暗示这可能是一份关于西南大学(SWU)社会网络分析(SNA)论文的审稿资料。社会网络分析是一种使用数学和统计方法来研究个体之间的关系、互动和网络结构的领域。在IT行业中,SNA被广泛...

    c3825-adventerprisek9_sna-mz.123-14.T7

    关于cisco的ios 分享,希望对大家有用

    思科IOS c3825-adventerprisek9_sna-mz.124-25g

    2012年的思科3825路由器的IOS版本,IOS版本升级用

    SNA-Sandhu:SNA课程说明

    通过SNA-Sandhu课程的学习,学员将能够系统地掌握社会网络分析的方法,从而在学术研究、市场分析、组织管理等领域发挥重要作用。对于那些对社会结构、人际关系以及信息传播感兴趣的人来说,这是一门非常有价值的课程...

    sna-qau:社交网络分析分配和任务

    文件“sna-qau-main”可能包含了课程的讲义、代码示例和练习,帮助你在学习过程中逐步深化理解。 通过完成这些任务,你将能够构建和分析自己的社交网络数据集,解释网络结构,发现隐藏的关系,并预测网络行为。这将...

    SNA-application-SIDRA-nd-group:项目名

    DM 103348:使用SNA的图论(社交网络分析)项目成员学生卡学生姓名63986 西德拉·乌斯曼...SNa:是通过使用网络和图论研究社会结构的过程。 它是网络中具有特征的网络结构,即节点或事物以及连接它们的联系和边际关系。

    Guanxi SNA-开源

    “关系”是针对社交网络分析师的强大分析和模拟应用程序。 “关系”使该领域的研究人员可以创建,导入和导出无穷无尽的网络,分析其结构并对其进行自定义动力学。

    sna-nfl-coaches:社交网络分析项目

    NFL 教练的社交网络分析,1980-2013 这是Lada Adamic的Coursera“社交网络分析”课程项目。 要求 安装了 igraph 和 knitr 软件包的 R LaTeX - 特别是pdflatex 编译 运行make 打开project.pdf

    IBM SNA Knowledge

    IBM Systems Network Architecture (SNA) 是一种历史悠久且功能强大的企业级网络架构技术,尽管随着时间的推移,现代网络技术不断进步和发展,SNA仍然是理解和研究网络架构的重要组成部分。通过对SNA的基本概念、...

    Python库 | sna_prediction-1.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:sna_prediction-1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    论文研究-基于SNA的复杂项目组织权力量化及实证.pdf

    论文研究-基于SNA的复杂项目组织权力量化及实证.pdf, 在社会网络分析(social network analysis, SNA)中, 中心度和中心势是衡量个人(团队)结构位置和权力指针, 也是刻画...

    论文研究-基于神经网络和SNA的C2C电子商务信誉欺诈识别研究.pdf

    如何有效识别互联网上的信誉欺诈商户是当前的研究热点。阐述了将基于交易历史的社会网络分析用于构建C2C电子商务信誉欺诈识别指标体系的原理及过程,通过使用LVQ神经网络对雅虎奇摩拍卖网采集的大量用户交易数据进行...

Global site tag (gtag.js) - Google Analytics