65.9K
CodeProject 正在变化。 阅读更多。
Home

AppFabric 缓存:现在怎么办?

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (1投票)

2016年4月14日

6分钟阅读

viewsIcon

20380

本文讨论了随着微软 AppFabric 支持的终止,迁移到新的分布式缓存的考虑因素。

ScaleOut Software 的 Windows Server AppFabric 缓存兼容库 是一个源代码兼容的“即插即用”替代品,可实现无缝过渡。

两年前,我们发布了一篇 博客,讨论了微软 Windows Server AppFabric (WSAF) 缓存的性能和功能不足之处。自那时以来,情况发生了很大变化。微软今年早些时候宣布,将于 2017 年 4 月停止支持 Windows Server AppFabric 1.1。AppFabric 缓存用户现在必须确定迁移到替代分布式缓存的最佳下一步。

推荐的替代方案存在不足

鉴于其“移动优先、云优先”战略,微软似乎正通过建议“所有使用缓存的 Microsoft AppFabric 客户迁移到 Microsoft Azure Redis Cache”来推动客户转向其 Microsoft Azure 云平台。然而,对许多客户而言,迁移到 Azure 尚不现实,他们需要一个完全支持的本地解决方案作为其分布式缓存。微软建议客户迁移到 Redis 的做法既有争议又具有误导性,因为 Redis 开源社区不建议在 Windows 上运行。

此外,Redis 是一个内存数据结构存储,在单台服务器上效果良好,但缺乏成熟、功能齐全的内存数据网格的许多可扩展性和高可用性功能,更不用说实时分析和计算能力了。与当前完全点对点的内存数据网格相比,Redis Cluster 使用的技术相对不成熟。例如,其具有最终一致性的主/从设计无法提供事务系统期望的访问保证和易用性,并且其依赖客户端数据分片代表着易用性上的倒退。这使得客户在将其本地、.NET 兼容的分布式缓存从 AppFabric 缓存迁移出去时,面临一个不确定且商业上不受支持的未来。

更好的替代方案

幸运的是,ScaleOut Software 十多年来一直忠诚地为 .NET 开发者社区提供行业领先的内存数据网格。ScaleOut 的架构设计理念侧重于以最大的易用性交付高性能。它采用单一、一致的架构来实现可扩展性和高可用性的集成;此架构在其内存数据网格的所有方面都被透明地利用。我们称之为“一切都可扩展、高可用”——该平台超越了内存对象访问的线性性能扩展,并为分布式锁定、事件处理、负载均衡、地理复制、并行计算以及备份/恢复等所有功能使用通用架构。

ScaleOut StateServer® 与行业同类产品区分开的关键优势和特点包括:

一致的点对点架构

  • ScaleOut StateServer 使用点对点架构来避免单点故障并最大化易用性。它通过在每个集群主机上自动复制配置文件来避免对集中式配置存储(这是单点故障)的需求。系统管理员无需创建和管理配置存储;ScaleOut StateServer 会自动处理这一切。
  • ScaleOut StateServer 的点对点架构允许轻松地向成员身份添加和移除服务器。服务器会自动形成新的成员身份并根据需要重新平衡工作负载。在服务器发生故障后,成员身份会自我修复,恢复高可用性冗余,并根据需要重新分发工作负载。
  • 为了满足事务系统的需求,ScaleOut StateServer 在其内存数据网格中实现了顺序一致性模型来存储数据。与在更新副本时采用最终一致性的分布式缓存不同,这保证了即使在服务器或 NIC 发生故障后,客户端应用程序也能始终看到最新数据。

易用性

  • ScaleOut StateServer 备受赞誉的易用性确保了安装极其简单,配置步骤最少。与 AppFabric 缓存不同,它不需要经验丰富的 Windows 系统管理员来完成安装和配置分布式缓存的过程。
  • ScaleOut StateServer 的集中式 GUI 管理控制台极大地简化了管理,并提供了重要功能,如集群范围控制、动态性能图表警报以及网格热力图。整体可视化提供了即时监控,这是 PowerShell 和其他基于文本的脚本方法无法实现的。
  • ScaleOut 对象浏览器支持对分布式缓存的内容进行详细检查,包括访问对象属性的值。

扩展功能

ScaleOut StateServer(及其产品扩展)远远超出了 AppFabric 缓存的基本功能,并增加了重要功能,包括:

  • 使用 Microsoft LINQ 进行基于属性的分布式查询
  • 众多 API 扩展,例如对对象依赖项和滑动超时期的支持
  • 强大的对象浏览器,可直接浏览存储在网格中的数据
  • 可扩展的事件处理
  • 数据并行计算,包括世界上第一个 C# MapReduce
  • 用于构建服务器端数据结构的扩展支持
  • 基于 WAN 的数据复制和同步的全局数据访问
  • 对公共云(包括 Amazon AWS 和 Microsoft Azure)的集成支持

此外,与 Redis 和其他一些开源替代品不同,ScaleOut StateServer 得到了 ScaleOut Software 的全面商业支持,可在 Windows 上使用(也支持 Linux 以实现完整移植性)。

替换和迁移选项

客户在计划从 AppFabric 缓存迁移到 ScaleOut Software 的分布式缓存时,可以选择两种路径:保留现有旧版应用程序的源代码兼容性,或者迁移应用程序以充分利用原生的 ScaleOut API。

源代码兼容库

ScaleOut Windows Server AppFabric (WSAF) 缓存兼容库是 Microsoft AppFabric 缓存 API 的源代码兼容的“即插即用”替代品。这使得使用 AppFabric 的现有客户应用程序无需进行任何代码更改即可保留旧版 AppFabric 缓存 API 语义,并切换到 ScaleOut StateServer,同时使用熟悉的 PowerShell 命令来管理分布式缓存。此库随 ScaleOut StateServer 版本 5.4 及更高版本一起提供,如 WSAF 缓存兼容库参考 所述。

原生 ScaleOut API

客户还可以重写应用程序以使用 ScaleOut StateServer 的原生 API,这使得应用程序能够充分利用上述扩展功能。通过混合方法,可以将原生的 ScaleOut StateServer API 与 AppFabric API 一起使用。我们开发了详细的技术 AppFabric 缓存迁移指南 来帮助开发人员完成此过程。

使用 WSAF 缓存兼容库

WSAF 缓存兼容库易于集成到使用 AppFabric 缓存 API 的应用程序中。以下是所需步骤的概述:

  1. 将兼容库的程序集 (soss_wsaf_compat.dll) 添加到项目中作为引用。此程序集可以在 ScaleOut StateServer 的安装文件夹(通常是 C:\Program Files\ScaleOut_Software\StateServer)的 Compat\WSAF_Caching 文件夹中找到。
  2. 将源文件中的 "using Microsoft.ApplicationServer.Caching;" 语句更改为 "using Soss.Compat.WSAF;"。
  3. 重新编译项目即可开始使用 WSAF 缓存兼容库。

更多信息

有关所有可用的 AppFabric 缓存替换和迁移资源的更多信息,请访问 www.scaleoutsoftware.com/appfabric,其中包含一项针对前 AppFabric 缓存用户的有价值的优惠。我们希望我们的平台作为 Microsoft WSAF 缓存的替代品和升级品的强大功能已经引起了您的兴趣。无论您是在本地运行还是在云端运行,这都可能是您应用程序的正确下一步。

© . All rights reserved.