http://www.360doc.com/content/17/0531/16/16915_658758144.shtml
对于支持高并发量的web架构,服务器集群是很好的解决方案。不管是多台独立的服务器,还是一台服务器启动多个iis进程的web园,都相当存在多个独立一样的web网站。而每个web网站默认都使用自己独立的Session空间,用户每作一次请求都有可能切换到不同的web网站,所以我们需要同步这些web网站之间的Session,达到用户数据的一致性。
我们来看看asp.net的session保存模式
1、 InProc 模式:默认模式,即进程内模式,缺点是容易丢失,进程间不共享。
2、 StateServer 模式:使用独立的进程aspnet_state.exe来保存Session,可以多服务器共享,缺点是单服务器缓存存储,不能持久化到磁盘。
3、 Sqlserver 模式:就是把Session存入Sqlserver数据库中,可以多服务器共享,缺点是读写效率低。
4、 缓存服务器群+数据库持久化:本文所述的就是这种模式,Memcached 提供了缓存服务器集群,数据库采用sqlserver 持久化。
一、安装 Memcached 服务端
Memcached 分为windows版和linux版本,如果不考虑增加额外的linux服务器,可以采用windows版本运行在同一台服务器上,但是想提高集群服务器性能,还是建议使用linux集群。
Linux下安装过程大家还是百度吧,这里简单介绍一下windows下安装:
1、 下载win64版本
,win32版本百度找吧。
2、 解压到一个目录
3、 以管理员身份启动cmd窗口,进入解压目录
输入命令行
memcached.exe -d install
安装服务
然后输入命令行
memcached.exe -d start
启动服务
至此,单服务器版的memcached服务器端已经安装完毕,如果想做集群配置还是去百度吧。
二、安装 Memcached 客户端
1、下载到 http://memcachedproviders.codeplex.com/
或者 本站下载
, 官网提供了.net2.0 , .net3.5版本的,可以重新编译生成 .net4.0以上版本的dll
2、解压后,源码里Trunk\DbSQL有2个目录Create Scripts 和 Stored Procs?
里面的.sql文件是用来创建数据库表和存储过程的脚本。
安装sqlserver数据库2005/2008 ,我用的是sqlexpress 2005版本。然后创建数据库 session?
打开session数据库,在查询器里运行目录Create Scripts 和 Stored Procs下面的多个.sql脚本文件(一个一个运行),直到把表和所有的存储过程都创建完毕。
3、添加引用
重新生成 Trunk\MemcachedProviders 项目,得到3个dll
把这3个dll添加引用到自己的web工程里。
修改web工程的web.config????
4、 Session 使用
和传统使用方法一样
protected void Page_Load(object sender, EventArgs e)
{
Session[” Name”]=”test”;
}
5、 测试
运行网站后,打开数据库Session 的表tblSessions查看记录?
说明Session已经起作用
请关注开源框架 bigcore 大数据高并发?
http://www.8088net.com