【转】ASP.NET 分布式缓存解决方案AppFabric 缓存
原文地址:http://xcai.net/archives/30
前文提到可以利用IIS7 ARR模块实现类nginx反向代理,提供负载均衡方案,但是真正要在实际应用中部署,还得解决session同步问题,session实际上是缓存的一种,在之前微软的解决方案中并没有可靠的分布式缓存方案,通常都是利用memcached来实现,不过最新.NET 4中已经有较为完善的解决方案:Windows Server AppFabric 缓存。
AppFabric 缓存物理结构
Windows Server AppFabric 缓存 功能使用彼此通信的服务器群集来形成单个统一的应用程序缓存系统。无论构成缓存群集的计算机有多少台,您的客户端应用程序都可以与群集中单个逻辑单元的缓存配合使用。
物理体系结构的主要组件包含缓存服务器、缓存主机 Windows 服务、缓存群集、基于 Windows PowerShell 的缓存管理工具、群集配置存储位置和缓存客户端。
AppFabric 缓存逻辑结构
AppFabric 中缓存群集的逻辑体系结构由命名缓存、区域和缓存对象组成。在下图中,命名缓存跨群集中的所有缓存主机,但区域仅限于群集中的一个缓存主机。
开发缓存客户端
针对 .net 开发,提供了 Microsoft.ApplicationServer.Caching 命名空间中的接口供开发调用,具体开发不在此处详述,详细浏览:http://msdn.microsoft.com/zh-cn/library/ee790941.aspx
实现Seesion同步
Microsoft.ApplicationServer.Caching 中提供了现成的 SessionProvider,不需要应用做任何开发,就能通过部署切换到分布式缓存中,详细配置方法参考:http://msdn.microsoft.com/en-us/library/ee790859.aspx
配置案例如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--configSections must be the FIRST element --> <configsections> <!-- required to read the <dataCacheClient> element --> <section type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="dataCacheClient" allowlocation="true" allowdefinition="Everywhere" /> </configsections> <!-- cache client --> <datacacheclient> <!-- cache host(s) --> <hosts> <host name="CacheServer1" cacheport="22233" /> </hosts> </datacacheclient> <system.web> <sessionstate mode="Custom" customprovider="AppFabricCacheSessionStoreProvider"> <providers> <!-- specify the named cache for session data --> <add type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" name="AppFabricCacheSessionStoreProvider" cachename="NamedCache1" sharedid="SharedApp" /> </providers> </sessionstate> </system.web> </configuration></pre>
至此基本具备了完整的windows .net 平台大规模web应用解决方案,并且不需要对现有应用做改造就能实现无缝迁移。
本文作者:拓荒者IT
本文链接:https://www.cnblogs.com/youring2/archive/2012/05/31/2528821.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
📌做了个微信公众号【拓荒者IT】,分享各种技术干货,新内容首发到公众号,欢迎关注❤️
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步