关键字: 集群 sna
参考资料:
Shared Nothing Architecture与PHP的童话
Shared Nothing Architecture
以往集群架构都采用Session共享模式进行设计,而后PHP等方面提出了SNA架构,主张Session不共享。SNA架构思想,无论对企业应用还是大型互联网站,极大提高了web应用的吞吐量和性能。
一般SNA架构以集成分布式Cache例如 memcached 的方案居多,此处姑且称为 Cache模式。
我结合公司电信项目的情况,以及思考,总结另一种方案,供参考。
SNA思想的关键就是每个集群内web server实例不互相共享session,Cache模式主张session数据都放到分布式缓存中,意味着,逻辑上集群内还是要共享session信息;这种考虑源于负载均衡时,同一个IP发来的两个请求,可能走到不同的 Web Server上。
因此,只要同一IP的两个请求转发到同一个 Web server实例,那么就可以不需要全局的 session信息缓存。
1) 我所在的移动项目下,采用 F5硬件负载均衡器,使用IP记忆机制实现了这一点。因此,各 web server实例的session无需共享,仍然保存在自己的session内存中,节省了网络开销和Cache命中查找时间。
F5很贵,因此对于网站一般负担不起,但可以采用软件负载来做到这一点。
切分模式的SNA架构:
2) IP Memory(IP记忆):负载服务器记录 客户端IP -> ServerID 的关系,模拟F5;
3) (Dispatch by Rule)按规则转发:IP记忆需要维护一张路由table, 因此,需要消耗一定内存,以及映射关系查找的时间;
我们将客户端的所有IP看作一个集合 IP Set,按固定规则将其平均分配集群的server实例上去,这样就可以节省路由table的开销。 关键是分配算法,可以考虑的有:
2.1) 简单数值法: IP各节加总 = X, 假定集群实例个数为 N,编号1-N, 那么每次请求选择的目标server id = X mod N。
2.2) hash值法: 有的系统可能想基于 userid 进行请求分配, 那么可以采用 X = hashCode(userid), serverID = X mod N;
具体情况下, 可以灵活选择使用那个数据项判断请求分配的逻辑。这个思想参考了 memcached 的集群管理思想。
4) stickySession方式。
一般apache等采用这种方式做负载均衡。但必须结合 jvmRoute。 第一次被分配的 web server必须返回一个 jvmRoute在response中,并由 apache 送到客户端浏览器,第二次请求发起时,request信息中将包含 JSESSIONID 和 对应的 jvmRoute, apache根据次找到对应的 server,完成 stickySession机制。
结论: 切分模式的SNA架构,基于规则进行请求转发,可以省去分布式Cache的使用,更进一步的提升系统吞吐量和响应性。
- 大小: 12.8 KB
分享到:
相关推荐
sna集中式session管理实现服务器集群及客户端程序,以“单点登陆、session共享解决方案(2)”为基础建立的服务器机群应用,运行server.bat启动服务器端,将client包导入web工程,通过Client.sessionPut()等方法调用。...
sna session实现方案实例,稍微修改下即可用于产品
资源分类:Python库 所属语言:Python 资源全名:sna_prediction-1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
the architecture and protocol introduction of IBM SNA technology
SNA核算体系的理论基础透析.doc
IBM社交网络分析资料,很经典的社交网络分析资料
SNA program in scilab environment
通讯联接时,在通过绑定IP上与SNA进行通讯需要对IP的MAC值进行转换,作者制作了一个小工具,很方便。
dynamic_SNA 该存储库包含用于动态和演化社会网络分析(SNA)项目的复制代码。
針對 Ibm sna 狀態查詢,使使用者了解系統狀態
sna lecture notes , erdos reyni
c7200-adventerprisek9_sna-mz.150-1.M.bin
SNA新闻采集系统v1.0.2 For 动易4.03
淘宝用的是JBoss,框架是iBATIS,缓存服务器是自己开发的,基本遵循SNA架构,水平扩展,数据库是Oracle,阿里集团的DBA几乎是国内最强悍的。目前淘宝的系统架构正在重构,计划用两到三年时间重写,目标有两个:1、...
互联网中信誉欺诈行为严重影响了C2C电子商务的发展。如何有效识别互联网上的信誉欺诈商户是当前的研究热点。阐述了将基于交易历史的社会网络分析用于构建C2C电子商务信誉欺诈识别指标体系的原理及过程,通过使用LVQ...
j.sna.2021.112958.pdf
cas-center加sna源码所以要分高点可以一起研究
Social network analysis with R sna 包介绍1
基于SNA的国际工程项目代理机构选择
SN算法 社交网络分析(SNA)的一些算法 这些算法位于我为我最后一年的论文————工作的一个更大项目的背景下。