对于支持高并发量的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./ 或者 本站下载 , 官网提供了.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. |
|