分享一则先前对Windows Server AppFabric分布式缓存的技术研究。

一. AppFabric 技术架构和原理

AppFabric与Memcached类似,采用C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。一旦启动,服务就一直处于可用状态。

适用于使用 ASP.NET、Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 生成的应用程序。

Windows Server AppFabric 具有三项核心功能:分布式缓存、工作流程管理和服务管理。

  •  针对 Web 应用程序,Windows Server AppFabric 提供了缓存功能,为应用程序数据提供高速缓存、扩充性及高可用性等特性,借此避免对数据源进行不必要的调用。
  •  针对复合应用程序,Windows Server AppFabric 则让用户能更轻松地构建和管理 Windows Workflow Foundation 和 Windows Communication Foundation 所构建的服务。
  •  Windows Server AppFabric 能够有效地简化这些复合应用程序的开发、部署及管理工作。

当客户端第一次获取一些数据的时候,如ASP.NET应用程序用户提供一些信息资料,或者从数据库中读取的信息,它可以使用AppFabric Caching Services客户端类库将一个唯一的名称和这些信息一起存放在缓存群集中( cache cluster)。对于客户端来说,缓存集群中的所有缓存服务器就是单一的逻辑存储。客户端既不知道也不关心的哪台物理服务器的缓存哪些数据。

Windows Server AppFabric Caching 主要特点有:

  •  任何可以被序列化的 CLR 对象都可以通过简单的 Cache API 将数据缓存
  •  支持企业规模:可支持上百台主机的服务器架构
  •  可弹性的调整配置,并通过网络缓存服务
  •  支持动态调整规模,可随时新增节点
  •  支持高可用性架构
  •  自动负载平衡
  •  可与 Event Tracing for Windows (ETW), System Center 等机制整合管理与监控
  •  提供与 ASP.NET 的无缝整合,将 Session 数据储存至缓存,也可在 Web farm 架构下将应用程序数据缓存 ,减少数据库大量读取的负担
  •  第一版遵循 cache-aside architecture ( 明确快取, Explicit Caching ),意即你必须在你的应用程序中明确指明你要新增(Put)或移除(Remove)快取的项目,所有快取数据并不会自动与任何源数据库进行同步。

二. AppFabric 逻辑架构

命名缓存也是一种缓存,可以为应用程序配置一个或者多个命名缓存,各个命名缓存可以配置成相互独立的,这样可以单独配置每个命名缓存以达到最优的性能。

三. 代码示例

1. 测试环境配置

 双节点的AppFabric集群
 Windows Server 2012测试环境
 Windows Server AppFabric 1.1
 主节点: 10.24.13.27 administrator/Test1234
 从节点: 10.24.12.206 administrator/Test1234
 AppFabric缓存服务配置共享文件路径:\\WIN-5SF1MT124FA\Cache
 缓存服务配置文件:\\WIN-5SF1MT124FA\GSPCache\ ClusterConfig.xml
 端口配置:

显示缓存配置:

2. 应用程序配置缓存

App.Config/Web.Config增加配置节:

3. 示例代码

4. DataCache类的主要方法

四、安装部署配置AppFabric

    1. 安装前准备,启用Windows Update服务

在主节点上创建共享的文件夹:

保证在同工作组的机器中不需要输入用户名和密码便可访问共享的文件夹:

\\WIN-5SF1MT124FA\Cache

2. 安装AppFabric并配置成集群

3. 安装其他的AppFabric并加入集群

安装第二个AppFabric和第一个类似,不同的是配置AppFabric不同

4. 设置并启动AppFabric集群

以管理员身份运行Windows PowerShell

顺序执行下面这些Command :

增加一个分布式Cache管理模块

Import-Module DistributedCacheAdministration

设置cache cluster

Use-CacheCluster

授权你的某个帐户 domain\username :

Grant-CacheAllowedClientAccount WIN-5SF1MT124FA \Administrator

验证授权是否成功:

Get-CacheAllowedClientAccounts

设置安全模式和保护级别:

Set-CacheClusterSecurity -ProtectionLevel None -SecurityMode None

最后启动:

Start-CacheCluster

、常用命令

1.Start-CacheCluster
   2.Stop-CacheCluster
   3.Get-CacheHost 可以得到所有的Cache主机
   4.Start-CacheHost GFTEST:22233 启动一个Cache主机
   5.Stop-CacheHost GFTEST:22233 停止一个Cache主机
   6.Get-CacheAllowedClientAccounts 得到授权的用户.
   7.Grant-CacheAllowedClientAccount NetworkService 给用户授权
   8.Export-CacheClusterConfig -File E:\VelocityCache\ClusterConfig.xml
   9.Import-CacheClusterConfig -File E:\VelocityCache\ClusterConfig.xml

10.Get-CacheStatistics default 得到默认或当前cache的详细统计结果。

六、性能测试

1. 两个节点的虚拟机性能测试结果

2. 两个节点的物理服务器性能测试结果

3.并行读写缓存

周国庆

2017/6/21

Windows Server AppFabric分布式缓存研究的更多相关文章

  1. 浅谈Windows Server APPFABRIC

    hi,everyone !真的是好久好久没有update blog了,因为最近忙着备考,没有时间对<数据结构与算法>进行研究学习了.所以,blog一直未更新.today is Friday ...

  2. Windows Server AppFabric 安装文档

    安装指南 入门标题页 3 Windows Server AppFabric 安装和配置指南 3 版权 3 版权所有 3 简介 3 清单:规划安装 4 硬件要求 4 使计算机作好安装准备 5 本节内容 ...

  3. 误解了Windows Server AppFabric

    想为自己的流程引擎找一个宿主,选择了几套方案,想先从AppFabric开始,原因主要出于以下几点: 1. 自己用过Windows Service或Form作为一些定时任务等应用的宿主,但苦于学艺不精, ...

  4. SharePoint 2013 必备组件之 Windows Server AppFabric 安装错误

    1.如下图,在使用SharePoint2013产品准备工具的时候,网上下载安装Windows Server AppFabric的时候,报错,点击完成重启计算机,重新安装依然报错. 2.无奈之下,只有选 ...

  5. Windows Server AppFabric

    文章:Windows Server AppFabric简介 介绍了AppFabric强大的功能.

  6. 使用微软分布式缓存服务Velocity(Windows Server AppFabric Caching Service)

    概述 Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,可以缓存各种类型的数据,如CLR对象. XML.二进制数据等,并且支持集群模式的缓存服务器.Vel ...

  7. fourinone分布式缓存研究和Redis分布式缓存研究

    最近在写一个天气数据推送的项目,准备用缓存来存储数据.下面分别介绍一下fourinone分布式缓存和Redis分布式缓存,然后对二者进行对比,以供大家参考. 1  fourinone分布式缓存特性 1 ...

  8. .NET Core应用中使用分布式缓存及内存缓存

    .NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中.对于分布式缓存,.NET Core提供了针对 ...

  9. ASP.NET Core 6框架揭秘实例演示[16]:内存缓存与分布式缓存的使用

    .NET提供了两个独立的缓存框架,一个是针对本地内存的缓存,另一个是针对分布式存储的缓存.前者可以在不经过序列化的情况下直接将对象存储在应用程序进程的内存中,后者则需要将对象序列化成字节数组并存储到一 ...

随机推荐

  1. js与juery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  2. ng-options语法详解

    我们先看下options的这条语句 ng-options="value.id as value.label group by value.group for value in myOptio ...

  3. JavaScript面向对象的理解

    JavaScript面向对象的理解  笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...

  4. 关于SqlServer远程跨库修改数据

    今天遇到一个需求需要修改远程服务器上的数据,如何直接修改,并且垮库,跨库简单,直接加上数据库名字,远程的话则需要创建链接服务器,具体步骤如下: --创建链接服务器  exec sp_addlinked ...

  5. Node.js项目APM监控之New Relic

    现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催.出现了访问失效等问题时,都很难判定是性能瓶颈还是一个藏的深的bug,汇报的时候一顿眼晕, ...

  6. 手机共享成wifi热点电脑无法上网的问题

    第二次遇到这样的问题,每次百度都不能解决我遇到的问题.上一次已经自己鼓捣着解决了,后来忘记怎么弄好的.第二次遇到这个问题,又是浪费了许多时间后,偶然弄好了,突然想起来上次就是这样弄好的.所以就针对我自 ...

  7. Ajax,纯Js+Jquery

    AJAX:Asynchronous Javascript and xml 异步,Js和Xml 交互式网页开发 不刷新页面,与服务器交互 详情请参照Jquery工具指南用在浏览器端的技术,无刷新,通过X ...

  8. 升讯威微信营销系统开发实践:(5) Github 源码:微信接口的 .NET 封装。

    微信开发系列教程,将以一个实际的微信平台项目为案例,深入浅出的讲解微信开发.应用各环节的实现方案和技术细节. 本系列教程的最终目标是完成一个功能完善并达到高可用性能指标的微信管理软件,所以除了与微信本 ...

  9. Git 使用记录

    在win7平台已经安装好了git的情况下: 1,Git 本地仓库建立与使用步骤: (2)新建立文件夹: $ mkdir learngit $ cd learngit $ pwd /Users/mich ...

  10. 中文分词中的战斗机-jieba库

    英文分词的第三方库NLTK不错,中文分词工具也有很多(盘古分词.Yaha分词.Jieba分词等).但是从加载自定义字典.多线程.自动匹配新词等方面来看. 大jieba确实是中文分词中的战斗机. 请随意 ...