BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

高效分布式Session管理

| 作者 王翔(Vision Wang) 关注 0 他的粉丝 发布于 2007年11月1日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

作为ASP.NET应用的一个重要组成部分,Session是绝大部分项目需要面临的问题。但当Session中对象超过某个容量时(一般在100K左右),整个ASP.NET应用性能会急剧下降,这缘于ASP.NET在Session处理上采用一种只要有“风吹草动”就需要读/写整个Session中的内容的策略,而项目中往往又需要经常对Session中的信息进行维护,例如:购物车。除此而外,一些用户不必要的Web点击引发的Session内容加载和更新也会对应用性能带来明显负面影响;伴随着SOA和企业应用的整合的浪潮,很多时候Web应用间需要共享Session,也就是分布式的Session访问。

考虑到ASP.NET内置Session管理的局限性,针对上面两个情况,可以通过采用第三方产品作为专用的进程外Session管理宿主(例如:产品化的Scaleout StateServer),它主要适于下列情况:

  • Web Server的不同Web应用间,Web Farm中的不同Web Server间需要共享Session信息,一方面有可能因为Singleton访问的要求,另一方面考虑到高可用集群的需要,即便某个Web Server宕掉之前从它发起的Session变更结果同样可以被其他Web Server获得;
  • 适于频繁大颗粒度Session数据小比例修改的ASP.NET应用;

图:一般进程外Session服务的结构

不仅如此,由于Session Server为进程外对象的关系,因此可以把来自不同数据源的相对容量较大的参数表的缓冲交由这个独立的Session Server调用

除了商用产品外,开源的NCache也提供动态集群扩展能力,包括复制、分区、分区复制和客户端Cache的支持。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT