【转】ASP.NET 分布式缓存解决方案AppFabric 缓存

简介:

 

前文提到可以利用IIS7 ARR模块实现类nginx反向代理,提供负载均衡方案,但是真正要在实际应用中部署,还得解决session同步问题,session实际上是缓存的一种,在之前微软的解决方案中并没有可靠的分布式缓存方案,通常都是利用memcached来实现,不过最新.NET 4中已经有较为完善的解决方案:Windows Server AppFabric 缓存。

AppFabric 缓存物理结构

Windows Server AppFabric 缓存 功能使用彼此通信的服务器群集来形成单个统一的应用程序缓存系统。无论构成缓存群集的计算机有多少台,您的客户端应用程序都可以与群集中单个逻辑单元的缓存配合使用。

物理体系结构的主要组件包含缓存服务器、缓存主机 Windows 服务、缓存群集、基于 Windows PowerShell 的缓存管理工具、群集配置存储位置和缓存客户端。

IC424510

AppFabric 缓存逻辑结构

AppFabric 中缓存群集的逻辑体系结构由命名缓存、区域和缓存对象组成。在下图中,命名缓存跨群集中的所有缓存主机,但区域仅限于群集中的一个缓存主机。

IC424580

开发缓存客户端

针对 .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应用解决方案,并且不需要对现有应用做改造就能实现无缝迁移。




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2012/05/31/2528821.html,如需转载请自行联系原作者

相关文章
|
13天前
|
Oracle 关系型数据库 分布式数据库
分布式数据库集成解决方案
分布式数据库集成解决方案
213 0
|
13天前
|
Nacos 数据库
分布式事务解决方案Seata
分布式事务解决方案Seata
36 1
|
5天前
|
程序员
深入解析:分布式一致性的终极解决方案——XA协议
本文介绍了分布式系统中的两种一致性协议:2PC(两阶段提交)和3PC(三阶段提交)。2PC分为准备和提交两个阶段,确保所有参与者在提交前达成一致。3PC则在2PC基础上增加了一个CanCommit阶段,提高容错性和可用性,参与者在超时后可自行中断事务。选择协议需依据业务需求和系统特点,高一致性要求可选3PC,注重性能则选2PC。
12 0
|
13天前
|
NoSQL 分布式数据库 MongoDB
【MongoDB 专栏】MongoDB 的分布式事务解决方案
【5月更文挑战第11天】本文探讨了MongoDB的分布式事务处理,涉及两阶段提交(2PC)、TCC补偿事务、分布式锁和幂等处理。2PC通过协调者与参与者确保数据一致性,而TCC提供更高性能和容错性。分布式锁解决并发冲突,幂等处理保证事务正确性。根据业务需求选择合适方案,并关注性能、可靠性和容错。
【MongoDB 专栏】MongoDB 的分布式事务解决方案
|
13天前
|
缓存 监控 数据库
分布式系统中缓存穿透问题与解决方案
在分布式系统中,缓存技术被广泛应用以提高系统性能和响应速度。然而,缓存穿透是一个常见而严重的问题,特别是在面对大规模请求时。本文将深入探讨缓存穿透的原因、影响以及一些有效的解决方案,以确保系统在面对这一问题时能够保持稳定和高效。
41 13
|
13天前
|
存储 缓存 算法
【专栏】探讨分布式限流所面临的挑战以及目前业界常用的解决方案
【4月更文挑战第27天】在互联网时代,分布式限流是应对高并发、保护系统稳定的关键。它面临数据一致性、算法准确性和系统可扩展性的挑战。常见限流算法有令牌桶、漏桶和滑动窗口。解决方案包括使用分布式存储同步状态、结合多种算法及动态调整阈值。定期压力测试确保策略有效性。随着系统规模增长,限流技术将持续发展,理解并应用限流原理对保障服务质量至关重要。
|
13天前
|
存储 缓存 NoSQL
缓存、分布式缓存和持久化
这篇内容介绍了缓存的概念和Redis的作用,以口袋与公文包的比喻解释了缓存如何提高数据访问速度。Redis是一个内存中的高级缓存系统,能提升系统响应速度。接着讨论了为何需要分布式缓存,通过多个“篮子”(Redis节点)解决单点故障和性能瓶颈,保证高可用性和数据安全性。最后提到了Redis的两种持久化机制——RDB(定期数据快照)和AOF(记录写操作日志),分别用照片备份和实时同步来比喻,说明它们在数据丢失风险和恢复速度上的权衡。
|
13天前
|
算法 微服务
分布式事务解决方案
分布式事务解决方案
28 0
|
13天前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
56 1
|
13天前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
49 0