分布式缓存: Velocity之安装应用

概述

Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,能够缓存各类类型的数据,如CLR对象、XML、二进制数据等,而且支持集群模式的缓存服务器。Velocity也将集成在.NET Framework 4.0中,本文将介绍Velocity的一些预备知识、安装配置以及开发一个简单的示例。 html

简介

既然是分布式的缓存平台,客户端应用程序可以与缓存服务器集群中的任何一台服务器通讯,而且执行缓存操做,如新增缓存项,移除缓存项等。在Velocity中,提供了一套统一的API,开发者可使用任何一种.NET语言来访问这些API,如图1所示: 数据库

1 编程

物理模型

在整个Velocity分布式缓存解决方案中,从物理模型上来看,主要涉及到以下几个元素:缓存宿主,缓存集群,Velocity提供的基于Windows PowerShell的管理工具,对于服务器集群配置的存储。缓存宿主是指一个或者多个以Windows服务形式运行的服务器,每台服务器均可以运行缓存宿主服务;缓存集群是一个或者多个缓存宿主实例的集合;当缓存集群启动时,它将从集群配置存储位置处来获取配置信息,Velocity提供了多种方式的集群配置信息存储,能够基于XML文件、SQL Server数据库或者SQL Server CE等;基于PowerShell的管理工具后面会详细讲到。 如图2所示: 缓存

 

2 服务器

逻辑模型

从逻辑模型上来看,在Velocity中主要有命名缓存,在命名缓存中咱们还能够继续分区,命名缓存,能够理解为内存中的一个独立的存储结构单元,它们之间彻底互相隔离,互不干扰,当有多个应用程序共享同一个缓存集群时,能够为每一个应用程序分别创建命名缓存;在同一个命名缓存中,还能够对命名缓存进行分区,这样便可以解决数据冲突的问题,再配合Velocity中的"标签"功能,能够极大的提升检索效率。如图3所示: 分布式

  

3 ide

安装

Velocity当前最新的版本是CTP 2,你们能够到微软官方站点下载,因为Velocity中提供了一套基于Windows PowerShell的管理工具,因此在安装以前须要首先安装Windows PowerShell。在安装过程当中,其中有一步须要进行服务器集群的配置,如图4所示: 工具

4 性能

须要设置服务及集群端口号,集群配置的存储位置,集群配置存储的Provider,能够基于XML存储或者基于SQL Server CE存储等。另外能够访问以下站点得到一些资源: 学习

团队博客:http://blogs.msdn.com/velocity/ 

示例代码:http://code.msdn.microsoft.com/velocity

安装完成后,请在Windows Service中启动Microsoft project code named "Velocity"服务。

管理工具

Velocity提供了基于Windows PowerShell的管理工具,对于Windows PowerShell不熟悉的能够参考《回归Dos操做的快感,进入PowerShell世界》这篇文章。使用Windows PowerShell能够很是方便的对Velocity缓存集群、缓存宿主等进行管理。使用以下命令金额图对启动、中止、重启服务器集群:

Start-CacheCluster 

Stop-CacheCluster 

Restart-CacheCluster 

使用以下命令能够启动、中止缓存宿主、获取命名缓存、获取缓存分区等:

Get-CacheHost 

Get-CacheConfig 

Set-CacheConfig 

Start-CacheHost 

Stop-CacheHost 

Get-CacheStatistics 

Get-Cache 

Get-CacheRegion 

如使用Get-CacheHost命令获取缓存宿主的信息,如图5所示,能够看到宿主对应的服务名以及服务状态等:

5

使用Get-Cache命名查看全部的命名缓存,如图6所示:

6

使用该管理工具还能够建立、移除命名缓存等,这里再也不叙述。

简单示例

通过前面一大堆的理论介绍,如今来看一个最简单的示例。首先要把CacheBaseLibraryClientLibrary这两个程序集添加到应用程中,在Velocity安装目录下能够找到,而且引入命名空间:

using System.Data.Caching; 

在使用Velocity缓存数据时,首先须要建立一个命名缓存,它能够经过CacheFactory来建立,以下代码所示:

private Cache GetCurrentCache() 

{ 

 Cache dCache; 

 ServerEndPoint[] servers = new ServerEndPoint[1]; 

 servers[0] = new ServerEndPoint("localhost", 22233, "DistributedCacheService"); 

 bool routingClient = true; 

 bool localCache = false; 

 var factory = new CacheFactory(servers, routingClient, localCache); 

 dCache = factory.GetCache("default"); 

 

 return dCache; 

} 

此处首先指定了全部的服务器信息,固然这些均可以放在应用程序配置文件中,将会在下篇中介绍,有了Cache对象,其它的使用就很是方便了,如咱们可使用AddPutRemoveGet等方法来对缓存项进行操做,

添加缓存项:

Cache dCache = GetCurrentCache(); 

 

String key = keyTextbox.Text; 

String val = valueTxtBox.Text; 

 

if (key == "" || val == "") return; 

 

dCache.Add(key, val); 

statusLabel.Text = 

 String.Format("Successfully added key {0} to cache.", key); 

获取缓存项:

Cache dCache = GetCurrentCache(); 

String key = keyTextbox.Text; 

 

if (key == "") return; 

 

String val = dCache.Get(key).ToString(); 

valueTxtBox.Text = val; 

statusLabel.Text = 

 String.Format("Successfully did Get of key {0} from cache", key); 

运行程序能够测试,数据被正确的缓存,如图7所示:

7

总结

本文简单介绍了微软的分布式缓存解决方案Velocity的一些概念以及开发了一个简单的示例,但愿对你们有用。在下篇文章中,咱们将会更深刻学习缓存复杂数据类型以及Velocity的编程模型和配置模型。

相关文章
相关标签/搜索