asp.net session分布式共享解决方案

Session共享是分布式系统设计时必须考虑的一个重要的点。相比较java中的session共享解决方案,.net中的解决方案还是比较少,MemcachedSessionProvider类库是比较优秀的.

EnyimMemcached是windows 下的memcached的客户端,这是一个比较优秀的类库,之后我们要谈到的MemcachedSessionProvider需要基于此memcached客户端来实现session共享。

github地址: EnyimMemcached

微软为我们实现了session共享,不过是基于sql server数据库的,具体请看 Nginx + IIS实现负载均衡 Session多站点共享 (http://www.cjjjs.com/paper/gzsh/2017102418155818.html),如果在项目中采用此种设计方案,此设计是会降低性能,因为频繁的读取数据库。但是微软也提供了一个基类SessionStateStoreProviderBase

具体请看 How to: Sample Session-State Store Provider , MemcachedSessionProvider也是基于此基类设计出来的。不得不说,微软许多基类的设计还是很不错的,考虑的很周全!

github地址: MemcachedSessionProvider

我粗略的实现了下,但是并没有实现session共享,我觉得应该是我没有看懂github上的示例(我觉得我要吐槽下,我是真没看懂github下的测试代码(test文件))