[2014-02-23]Asp.net Mvc分布式Session存储方案

本文探讨了在集群环境中如何处理会话状态Session的问题。详细分析了InProc、StateServer及SQLServer模式的局限性,并介绍了通过自定义实现Session存储的具体方法。推荐了一款基于Membase的Session存储解决方案。

要玩集群的时候,怎么处理会话状态Session?

InProc模式的sessionState是不能用了,因为这是在web服务器本机进程里的,会造成各节点数据不一致。除非在分流的时候用ip hash策略,不是长久之计。

  1. 用StateServer模式,可能单点故障
  2. 用SQLServer模式,需要另配一个数据库实例,SQLServer不方便做读写分离等集群化架构
  3. 用Custom模式,自定义

前两种不说了,有兴趣可以自己去看看,我们来看第三种,怎么自定义实现Session存储。

SessionStateStoreProviderBase

要自定义Session Provider,需要继承SessionStateStoreProviderBase,并override一系列方法,具体不列了,有点多。
这里提供一个源码参考:github

如果懒得自己实现,就直接用这个库。

项目名:

memcached-providers

Github地址:

https://github.com/enyim/memcached-providers

命名空间:

Enyim.Caching.Web

获取方法:

直接git clone源代码 或 VS使用 Nuget 找到Memcached SessionState Provider

配置方法:

需要配置membase,参考

注意,虽然该项目在Memecache下,但是它的SessionStateStoreProvider是由 Membase 提供存储的,Membase兼容Memcache的api,但是 未验证 是否可以直接由Memcache实例替代Membase。

转载于:https://www.cnblogs.com/personball/p/7455841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值