弹性和可用区域

Ada*_*dam 3 amazon-ec2 amazon-web-services amazon-elasticache

我在新加坡的2个可用区域中使用AWS负载平衡和多个Web服务器.

我现在希望在两个可用区域中部署弹性缓存节点,并想知道Web服务器访问不同可用区域的弹性缓存节点是否存在延迟问题?

更新 - 实际上经过更多调查后,似乎弹性缓存群集只能存在于一个可用区域中.因此,处理可用区域中断的最佳解决方案是什么?

Guy*_*Guy 6

您是对的,ElasticCache中尚不支持多可用区功能.然而,AZ之间1ms的低延迟通常不是一个大问题.

缓存的目的是从内存中提供长而频繁的SQL查询.这可以代替300ms的SQL查询,只需一次内存查找即可.与那1ms相比,网络延迟应该不成问题.

作为ElasticCache的缓存的第二个属性是,您正在加热它并使用数据库中的实时数据保持温暖.您永远不应期望您的缓存作为一个整体是最新的,因为后台的数据一直在变化.预计在群集中丢失缓存节点(与大型系统中的任何其他故障一样),因为您的系统应该相当快地预热新创建的缓存节点.ElasticCache将为您替换故障节点,但您需要使用缓存数据再次填充它.

关于可用区之间的冗余,您可以检查AWS 描述:

在不同的可用区中设置冗余缓存集群

Amazon ElastiCache监控缓存节点的运行状况,并在网络分区,主机硬件或软件故障时替换它们.但是,考虑到缓存的短暂性质,缓存节点替换开始为空(也称为"冷"),并且根据您的工作负载模式,可能需要一些时间来重新填充数据(也称为"预热").此外,Amazon ElastiCache提供的自动替换功能仅限于单个可用区.如果您的应用程序对故障恢复或缓存节点的"预热"时间敏感,或者您希望增强可用区级别故障的容错能力,则可能希望在不同的可用区中部署冗余ElastiCache群集.

管理数据冗余的方法之一是让您的应用程序将所有缓存写入应用于这些可用区域中的缓存节点.如果主可用区中的一个或多个高速缓存节点出现故障,则可以在Amazon ElastiCache恢复主可用区中的高速缓存节点时将读取定向到辅助可用区中的相应高速缓存节点.