项目分布式部署那些事(2):基于OCS(Memcached)的Session共享方案

在不久之前发布了一篇“项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享”,因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相关的解决方案和心得。

为什么放弃Redis?

    因为我们Redis是需要自己部署的,而自己部署意味着要花经历去维护这样一套Redis的方案,而一开始我们以为一台简单的服务器简单的安装配置一下Redis就可以负荷我们现在的应用了(我们的应用目前只有Session使用了它),可事与愿违再部署上去的过程中经常出现redis服务挂掉,启动不起来的情况,随后我们咬了咬牙决定使用阿里云的OCS(开放缓存服务)来构建我们的Session共享和分布式缓存。

OCS的缺点

然而阿里云的OCS在我眼中并不完美,下面我们来看看它的缺点。

  1. 外网无法访问(意味着我们不能在本地开放环境中进行测试调试)
  2. 阿里云官方没有提供针对于.NET/C#的SDK(需要使用第三方的,但我们使用的第三方SDK无法支持阿里云OCS控制台中 缓存数据管理 - 视图操作)
  3. 价格其实并不便宜

关于第一点,不像ONS那样可以在外网访问,但不承诺稳定性,至少我们可以在开放环境进行调试,这一点是比较不能忍受的,现在我们只能在本地部署Memcached进行开放环境的调试

关于第二点OCS兼容了Memcached所以我们可以使用任何关于Memcached的SDK,而我们使用的是:Enyim.Caching

关于第三点,它是按小时收费的。。具体看图吧(我们开通了并没有几天)

image

关于Session共享的方案

分布式相关开源地址:https://github.com/RabbitTeam/Distributed

开源地址:https://github.com/RabbitTeam/Distributed/tree/master/Distributed/Distributed.SessionProvider.Memcached

在NuGet

地址:https://www.nuget.org/packages/Distributed.SessionProvider.Memcached/1.0.0-beta2

安装命令:Install-Package Distributed.SessionProvider.Memcached –Pre

使用方式

        1.设置相关配置

               image

               MemcachedServerAddress 为服务器地址(记得加上端口号哦

               MemcachedSessionKey 为Session在Memcached中占用的Key,防止冲突。

        2.配置sessionState

              image

写在最后

项目分布式以来一切还算顺利,虽然有一次到第二天早晨8点,有一次到晚上11点,但相比这么大的变动还算顺利,所以项目的架构还是非常重要的,如果大伙的项目有做大做强的可能就不要放弃前期优良的架构。

QQ群:384413261(RabbitHub)

Email:majian159@live.com



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。
欢迎大家关注微信号。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码)
微信公众平台
posted @   KAnts  阅读(2122)  评论(8编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示