从 AppFabric Caching 迁移到 Azure 角色中缓存
重要
Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪种 Azure 缓存产品/服务适合我?
本主题介绍如何从 Microsoft AppFabric 1.1 for Windows Server迁移到 Microsoft Azure 缓存。 将本地应用程序移动到 Azure 时,可能会发生这种类型的缓存迁移。
AppFabric 支持使用你自己的服务器和网络基础结构的内部缓存群集。 迁移到 Azure 是由 AppFabric 的大部分功能和编程模型与 Microsoft Azure Cache 共享的事实所促进的。
规划迁移
在将已启用缓存的应用程序迁移到云之前,请先查看 AppFabric 与 Microsoft Azure 缓存之间的差异。 如果需要在Microsoft Azure缓存中不可用的功能(如写通),则必须重新设计解决方案的这一部分才能成功迁移到 Azure。
分析 AppFabric 缓存群集
必须在已启用缓存的 Azure 角色上重新创建所有缓存及其相关设置。 第一步是分析 AppFabric 缓存群集,以了解当前的内部配置。
在 AppFabric 缓存群集上,打开“缓存管理 Windows PowerShell”命令提示符。
运行不带任何参数的 Get-Cache 命令。 此命令会列出命名缓存。
对于列出的每个缓存,请运行 Get-CacheConfig 命令。 将缓存名称作为参数传递给此命令。 记录每个缓存的配置设置。 以下显示了该输出的示例。
PS C:\Windows\system32> Get-CacheConfig TestCache CacheName : TestCache TimeToLive : 20 mins CacheType : Partitioned Secondaries : 0 MinSecondaries : 0 IsExpirable : True EvictionType : None NotificationsEnabled : True WriteBehindEnabled : False WriteBehindInterval : 300 WriteBehindRetryInterval : 60 WriteBehindRetryCount : -1 ReadThroughEnabled : False ProviderType : ProviderSettings : {}
运行 Get-CacheHost 命令以查看缓存群集中的缓存主机列表。
对于每个缓存主机,请运行 Get-CacheHostConfig 命令。 传输所需参数、缓存主机的名称和缓存端口(通常为 22233)。 记录每个缓存主机的
Size
参数。将所有缓存主机的
Size
值相加,以确定缓存群集的总体大小。
在云服务项目中重新创建缓存群集
警告
不支持在同一开发计算机上安装 AppFabric 和 Azure SDK。 这些步骤假定你在安装 Azure SDK 之前使用单独的计算机或完全卸载 AppFabric。
在Visual Studio创建云服务或打开现有的云服务。 将“缓存辅助角色”添加到云服务。 有关详细信息,请参阅 在专用角色上托管 Azure In-Role缓存。 此角色将为整个云服务提供缓存功能。 以下步骤介绍如何重新创建命名缓存。
在Visual Studio中,转到解决方案资源管理器窗口。
在 “角色” 文件夹中,双击承载缓存的角色。
在“角色属性”对话框中,选择“Caching”选项卡。
首先,在“命名缓存设置”下修改默认缓存,使之与 AppFabric 缓存群集中默认缓存的设置相匹配。 然后,使用“添加命名缓存”链接添加你的解决方案所需的任何其他缓存。 以下屏幕快照显示了几个已配置的命名缓存。
使用创建或重新使用存储帐户。 应在“Caching”选项卡的存储帐户字段中使用该帐户,以便部署到云中。
下表将 Get-CacheConfig 的输出与缓存窗口中的设置相关联。
Get-CacheConfig 设置 | 缓存窗口设置 |
---|---|
CacheName |
名称 |
TimeToLive |
生存时间(分钟) |
Secondaries (0, 1) |
高可用性(0 = 取消选中,1 = 已选中) |
IsExpirable (True, False) |
过期类型(True = 绝对,False = 无) |
EvictionType (无,LRU) |
逐出策略(无,LRU) |
NotificationsEnabled (True, False) |
通知(True = 已选中,False = 取消选中) |
注意
Microsoft Azure缓存中不支持此处未列出的任何 AppFabric 缓存设置。
可以通过了解虚拟机大小与此角色的运行实例数之间的关系来配置缓存群集大小。 有关详细信息,请参阅 Azure In-Role 缓存的容量规划注意事项。
迁移应用程序代码
最后一步是将任何应用程序代码移至云服务项目。 请注意,命名空间和许多 API 仍保持不变。 以下步骤为需要缓存的每个项目提供迁移指南。
在Visual Studio项目中,首先删除对 AppFabric 程序集的任何引用。
接下来,备份web.config或app.config文件的 dataCacheClient 部分。
从web.config或app.config文件中删除 dataCacheClient 和其他缓存部分。
接下来,准备项目以使用Microsoft Azure缓存。 有关详细信息,请参阅如何:准备Visual Studio以使用 Azure In-Role 缓存。
然后,手动将已删除 的 dataCacheClient 节重新添加到web.config或app.config文件中。 必须对这些部分做出以下更改:
向每个部分添加 自动发现 元素。 标识符属性必须引用承载缓存的角色的名称。
<autoDiscover isEnabled="true" identifier="[cache cluster role name]" />
删除所有 主机、 主机和安全 属性 元素。 Microsoft Azure 缓存中不必要且不受支持。