\看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!
\
\\
微软最近宣布Azure Redis Cache服务对跨地域复制(geo-replication)功能的支持发布正式版本(general availability),Azure Redis Cache是开源Redis缓存的微软托管实现。在2017年6月,微软曾经发布过它的公开预览版本。
\\
对跨地域复制的支持需要两个Azure Redis Cache实例,一个作为主(primary)缓存,另外一个作为从(secondary)缓存。副本不一定必须要放到与主缓存不同的region中,但是如果这样做的话,在主缓存不可用的时候,能够提供额外的弹性。在当前的实现中,副本只能放到一个region中。对于应用来说从缓存是只读的,而写操作是由服务异步处理的。
\\
跨地域复制是通过Azure Portal中的主缓存和从缓存的链接来配置的:
\\
\\
图片来源:https://docs.microsoft.com/en-us/azure/redis-cache/cache-how-to-geo-replication#add-a-geo-replication-link
\\
在配置跨地域复制之前,需要预先满足一些条件:
\\
- 缓存必须位于Premium层\\t
- 缓存必须在相同的Azure subscription中\\t
- 从缓存必须具备与主缓存相同的定价层级或者更高的定价层级\\t
- 如果主缓存是集群的,那么从缓存必须也是集群的,并且具有相同数量的分片(shard)\\t
- 缓存必须都处于运行状态\\t
- 缓存都不能启用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