看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!
微软最近宣布 Azure Redis Cache 服务对跨地域复制(geo-replication)功能的支持发布正式版本(general availability) ,Azure Redis Cache 是开源Redis 缓存的微软托管实现。在2017 年6 月,微软曾经发布过它的公开预览版本。
对跨地域复制的支持需要两个Azure Redis Cache 实例,一个作为主(primary)缓存,另外一个作为从(secondary)缓存。副本不一定必须要放到与主缓存不同的region 中,但是如果这样做的话,在主缓存不可用的时候,能够提供额外的弹性。在当前的实现中,副本只能放到一个region 中。对于应用来说从缓存是只读的,而写操作是由服务异步处理的。
跨地域复制是通过Azure Portal 中的主缓存和从缓存的链接来配置的:
在配置跨地域复制之前,需要预先满足一些条件:
- 缓存必须位于 Premium 层
- 缓存必须在相同的 Azure subscription 中
- 从缓存必须具备与主缓存相同的定价层级或者更高的定价层级
- 如果主缓存是集群的,那么从缓存必须也是集群的,并且具有相同数量的分片(shard)
- 缓存必须都处于运行状态
- 缓存都不能启用 Redis 持久化
Azure Redis Cache 跨地域复制目前不支持主从缓存之间的自动化故障切换(failover)功能。这会引入一个手动的步骤,需要进行应用的配置变更,这意味着服务可能会有一些停机的时间。微软的首席项目经理 Ye Gu 在博客文章中对其进行了解释:
…两个 Azure Region 之间的物理距离会明显增加整体响应时间的延迟。因此,Azure Redis Cache 不会自动故障切换至另外一个 Region 中的跨地理副本缓存。
故障切换是通过取消主缓存中对从缓存的链接来实现的。取消链接之后,从缓存就会变成新的主缓存,并且能够接受写入请求。
该项服务面临来自其他云厂商的直接竞争,包括 Amazon、Heroku 和 Redis。
Amazon AWS ElastiCache 支持多 zone 的地理复制,这是通过 Multi-AZ 结合自动化故障处理功能实现的。与 Azure Redis Cache 类似,故障切换也不是即时的,在采取行动之前可能会耗费几分钟的时间,但它是自动进行的,并且会重新配置 DNS 设置,以便于减少应用的重新配置。
Heroku Redis支持高可用性,这是通过在备用的zone 中持有一个单独的副本来实现的。它以类似于AWS ElastiCache 的方式支持自动化故障切换,与AWS 相同,它的切换也不是即时的,但是它会确保主缓存不再有效,而不是短暂的不可用。在服务的更高层级,故障切换对使用它的应用是透明的。
类似于AWS ElastiCache, Redis Enterprise Cloud 方案支持多 region,但是它声明其故障切换的耗时是秒级的,而不是分钟级的,而且它以“serverless”的方式运行,这与其他主要厂商基于实例的方案有所不同。
Azure Redis Cache 只能在该服务的 Premium 层级使用。其成本依赖于 Premium 层的等级,现在的价格区间从 P1 层的大约 400 美元 / 月到 P4 层的 3200 美元 / 月。尽管服务本身是免费的,但是你需要相同层级的两个实例,或者更高层的从缓存实例。另外,根据微软的说法,如果从缓存位于不同的 region 中,在主缓存和从缓存实例之间进行同步时,服务还会产生额外的数据出口的费用。
查看英文原文: Microsoft Announce General Availability of Azure Redis Cache Geo-Replication
评论