项目分布式部署那些事(2):基于OCS(Memcached)的Session共享方案
在不久之前发布了一篇“项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享”,因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相关的解决方案和心得。
为什么放弃Redis?
因为我们Redis是需要自己部署的,而自己部署意味着要花经历去维护这样一套Redis的方案,而一开始我们以为一台简单的服务器简单的安装配置一下Redis就可以负荷我们现在的应用了(我们的应用目前只有Session使用了它),可事与愿违再部署上去的过程中经常出现redis服务挂掉,启动不起来的情况,随后我们咬了咬牙决定使用阿里云的OCS(开放缓存服务)来构建我们的Session共享和分布式缓存。
OCS的缺点
然而阿里云的OCS在我眼中并不完美,下面我们来看看它的缺点。
- 外网无法访问(意味着我们不能在本地开放环境中进行测试调试)
- 阿里云官方没有提供针对于.NET/C#的SDK(需要使用第三方的,但我们使用的第三方SDK无法支持阿里云OCS控制台中 缓存数据管理 - 视图操作)
- 价格其实并不便宜
关于第一点,不像ONS那样可以在外网访问,但不承诺稳定性,至少我们可以在开放环境进行调试,这一点是比较不能忍受的,现在我们只能在本地部署Memcached进行开放环境的调试。
关于第二点OCS兼容了Memcached所以我们可以使用任何关于Memcached的SDK,而我们使用的是:Enyim.Caching。
关于第三点,它是按小时收费的。。具体看图吧(我们开通了并没有几天)
关于Session共享的方案
分布式相关开源地址:https://github.com/RabbitTeam/Distributed
在NuGet
地址: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点,但相比这么大的变动还算顺利,所以项目的架构还是非常重要的,如果大伙的项目有做大做强的可能就不要放弃前期优良的架构。
QQ群:384413261(RabbitHub)
Email:majian159@live.com
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。欢迎大家关注微信号。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码)

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)