在不久之前发布了一篇“ 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享 ”,因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相关的解决方案和心得。
因为我们Redis是需要自己部署的,而自己部署意味着要花经历去维护这样一套Redis的方案,而一开始我们以为一台简单的服务器简单的安装配置一下Redis就可以负荷我们现在的应用了(我们的应用目前只有Session使用了它),可事与愿违再部署上去的过程中经常出现redis服务挂掉,启动不起来的情况,随后我们咬了咬牙决定使用阿里云的OCS(开放缓存服务)来构建我们的Session共享和分布式缓存。
然而阿里云的OCS在我眼中并不完美,下面我们来看看它的缺点。
关于第一点,不像ONS那样可以在外网访问,但不承诺稳定性,至少我们可以在开放环境进行调试,这一点是比较不能忍受的,现在我们只能在 本地部署Memcached进行开放环境的调试 。
关于第二点OCS兼容了Memcached所以我们可以使用任何关于Memcached的SDK, 而我们使用的是:Enyim.Caching 。
关于第三点,它是按小时收费的。。具体看图吧(我们开通了并没有几天)
分布式相关开源地址: https://github.com/RabbitTeam/Distributed
开源地址: https://github.com/RabbitTeam/Distributed/tree/master/Distributed/Distributed.SessionProvider.Memcached
地址: https://www.nuget.org/packages/Distributed.SessionProvider.Memcached/1.0.0-beta2
安装命令: Install-Package Distributed.SessionProvider.Memcached –Pre
1.设置相关配置
MemcachedServerAddress 为服务器地址( 记得加上端口号哦 )
MemcachedSessionKey 为Session在Memcached中占用的Key,防止冲突。
2.配置sessionState
项目分布式以来一切还算顺利,虽然有一次到第二天早晨8点,有一次到晚上11点,但相比这么大的变动还算顺利,所以项目的架构还是非常重要的,如果大伙的项目有做大做强的可能就不要放弃前期优良的架构。
Email: majian159@live.com