当前位置:  开发笔记 > 编程语言 > 正文

如何管理Web群集中的会话变量?

如何解决《如何管理Web群集中的会话变量?》经验,为你挑选了2个好方法。

会话变量通常保存在Web服务器RAM内存中.

在群集中,客户端发出的每个请求都可以由不同的群集节点处理.对?!

那么,在这种情况下......

会话变量会发生什么?它们不是存储在节点RAM内存中吗?

如果其他节点没有我的会话变量,或者至少是所有节点,那么其他节点将如何正确处理我的请求?

Web服务器(Apache,IIS)或语言运行库(PHP,ASP.NET,Ruby,JSP)处理此问题?

编辑:经典ASP有一些解决方案吗?



1> Till..:

扩展@ yogman的答案.

Memcached真是太棒了!它是一个高性能和分布式对象缓存.

即使我提到分布式它基本上就像在一个备用/空闲服务器上启动一个实例一样简单,你可以将其配置为ip,port和使用多少内存并完成.

memcached -d -u www -m 2048 -l 10.0.0.8 -p 11211

(在守护程序模式下运行memcached,作为用户www,在IP 10.0.0.8上使用端口11211的2048 MB(2 GB)RAM.)

从那时起,您向memcached询问数据,如果数据尚未缓存,则将其从原始源中提取并将其存储在memcached中.我相信你熟悉缓存基础知识.

在集群环境中,您可以将memcached链接到集群,并在节点之间复制缓存.Memcached在Linux,Unix和Windows上运行,在任何有备用RAM的地方启动它并开始使用你的资源.

memcached的API 通常应该可用.我说应该是因为我只知道Perl,Java和PHP.但我确信,例如在Python中人们也有办法利用它.有一个memcached wiki,如果你需要指针,或者如果我太过分了,请在评论中告诉我.;)



2> ine..:

有三种方法可以在ASP.NET中存储会话状态.第一个是进程中,变量存储在内存中.第二种是通过将以下内容放在web.config文件中来使用会话状态服务:


正如您在stateConnectionString属性中看到的,会话状态服务可以位于不同的计算机上.

第三种选择是使用集中式SQL数据库.为此,您将以下内容放在web.config中:


有关所有这些选项的更多详细信息,请参见此处:http://www.ondotnet.com/pub/a/dotnet/2003/03/24/sessionstate.html

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有