Azure 角色中缓存中的高可用性

更新时间: 2015年8月

Important重要提示
Microsoft 建议使用 Azure Redis 缓存进行所有新的开发。有关选择 Azure 缓存产品的最新文档和指导,请参阅哪种 Azure 缓存产品适合我?

使用 角色中缓存 可以保持缓存对象的高可用性。使用 Azure 角色属性可为需要高可用性功能的每个缓存启用高可用性。不需更改代码,只需重新计算工作负荷所需的内存容量。可以通过在容量规划电子表格中启用“高可用性”设置来完成此操作。有关详细信息,请参阅Azure 角色中缓存的容量规划注意事项

启用高可用性后,将在同一云服务部署中复制缓存对象以便可以从硬件故障中复原。还会将辅助副本放置在不同的故障域和升级域中,以提高可用性。如果由于任何原因缓存群集中的一个虚拟机出现故障,则缓存群集可以使用辅助副本以防止数据丢失。

高可用性需要关联角色的多个实例。缓存项目的第二个副本保留在属于不同故障域和升级域的单独实例上。这样,如果一个实例出现故障,备份副本还存在于另一个实例上。在这种情况下,辅助副本将被提升为主要副本。然后,将在剩余的某一实例上生成新的辅助副本以保持高可用性。

为了实现高可用性,需要对主要副本和辅助副本执行所有缓存写入操作。

note备注
请注意,即使禁用高可用性,缓存群集也会尝试在计划关闭(如重新启动)期间保留数据。在这种情况下,缓存群集会尝试在关闭之前将缓存的项目传输到其他服务器。但是,此正常关闭无法保证完成,具体取决于要传输的数据量。此外,与高可用性不同,意外关闭期间不会保留数据。

托管 角色中缓存的角色应配置为至少在四个实例上运行。对于为两个或三个正在运行的实例配置的角色,可以启用高可用性,但由于以下两个原因,不建议这样做。

  • Azure 有时会重新启动虚拟机以进行日常维护。应用程序的就地更新也会使虚拟机脱机。在这两种情况下,最好至少有三个服务器存在于缓存群集中。这样,如果某一服务器出现故障,缓存群集仍然有三个服务器可用于生成缓存对象的主要副本和辅助副本。如果只有一个服务器正在运行,则缓存仍然是可以访问的,但高可用性将无法实现。

  • 虽然三个服务器满足前面的要求,但建议使用四个服务器。这有助于在故障域之间更均匀地分发主要副本。这将改善整个缓存群集中的数据分布,并且还会改善网络通信模式和性能。

当实例变为不可用时,会需要一段较短的时间将辅助副本提升为主要副本,并更新路由信息。在该时间段内,客户端将收到 DataCacheExceptionErrorCodeRetryLater 异常。角色中缓存应用程序应使用正常的错误处理和重试逻辑来正确应对这种情况。

由于要对主要副本和辅助副本执行所有写入操作,高可用性将增加延迟并减少吞吐量。对于受益于高可用性的缓存,这可能需要进行合理的权衡。

Important重要提示
按照定义,高可用性将每个缓存项所需的内存量增加了一倍。在执行容量规划任务期间请考虑此内存影响。有关详细信息,请参阅Azure 角色中缓存的容量规划注意事项

  1. 双击已启用角色中缓存的角色。

  2. “配置”选项卡上,验证“实例计数”是否为 4 或更高值。

  3. “Caching”选项卡上,选中需要高可用性的缓存所对应的“高可用性”复选框。下面的屏幕快照显示为三个缓存中的两个缓存启用了“高可用性”

    Caching 备份副本

另请参阅

显示: