Elasticache&可用区域

时间:2013-01-20 06:53:10

标签: amazon-web-services amazon-ec2 amazon-elasticache

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

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

  

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

     

Amazon ElastiCache监控缓存节点的健康状况   在网络分区,主机硬件或的情况下替换它们   软件故障。但是,考虑到缓存的短暂性,   缓存节点替换开始为空(也称为“冷”),和   根据您的工作量模式,可能需要一些时间   重新填充数据(也称为“预热”)。另外,   Amazon ElastiCache提供的自动替换功能   仅限于单个可用区。如果您的申请是   对故障恢复或Cache的“预热”时间敏感   节点,或者您希望增强可用区的容错能力   级别故障,您可能希望部署冗余的ElastiCache群集   在不同的可用区域中。

     

管理数据冗余的一种方法是使用您的应用程序   将所有缓存写入应用于这些可用区域中的缓存节点。   如果主要可用区中的一个或多个缓存节点   失败,你可以直接读取到相应的缓存节点   Amazon ElastiCache恢复时的辅助可用区   缓存主要可用区中的节点。

答案 1 :(得分:2)

可用区之间的延迟通常约为2毫秒,所以不,通常不是问题。

我真的需要了解更多关于你如何使用它能够解决问题的第二部分。由于它只是一个缓存层,因此应用程序通常可以在降级模式下运行,直到AWS修复问题或手动干预您的部件。或者,应用程序可以设计为自动故障转移到不同可用区域中的第二个群集。发生这种情况时,必须从持久数据存储区重建缓存。您可以让缓存未命中,也可以在应用程序开始使用之前填充它。