• 【转】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 的缓存管理工具、群集配置存储位置和缓存客户端。

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

  • 相关阅读:
    Windows Server 2008取消登录前的Ctrl+Alt+Delete组合键操作
    Kali Linux远程连接Windows服务器
    Kali Linux虚拟机安装完整安装过程及简单配置(视频)
    Kali Linux中下载工具Axel的安装和使用
    2017年Kali Linux更新源
    解决VMware虚拟机报错“无法连接MKS:套接字连接尝试次数太多,正在放弃”
    .deb软件包的安装和软件的卸载
    解决C语言程序报错:return type defaults to‘int’
    解决BackBox中Fcitx输入法中文输入状态下不显示候选词框的问题
    导航狗信息导航网站首页源代码(2017年11月03日版)
  • 原文地址:https://www.cnblogs.com/youring2/p/2528821.html
Copyright © 2020-2023  润新知