简析云服务融入分布式缓存系统架构(三)

AWS的每个区域一般由多个可用区(AZ)组成,而可用区一般是由多个数据中心组成。AWS引入可用区设计主要是为了提升用户应用程序的高可用性。因为可用区与可用区之间在设计上是相互独立的,也就是说它们会有独立的供电、独立的...

 3EVCache 的高可用性

002UASMrzy7605pjKJv15&690.jpg

 
AWS的每个区域一般由多个可用区(AZ)组成,而可用区一般是由多个数据中心组成。AWS引入可用区设计主要是为了提升用户应用程序的高可用性。因为可用区与可用区之间在设计上是相互独立的,也就是说它们会有独立的供电、独立的网络等,这样假如一个可用区出现问题时也不会影响另外的可用区。在一个区域内,可用区与可用区之间是通过高速网络连接,从而保证很低的延时。
 
EVCache实例通过将Amazon EC2放到多个可用区, 能够预防应用的单点故障。无论在相同的物理区域内还是在不同的物理区域之间,在多个AZ上运行独立的应用都是非常重要的。如果一个可用区失效了,在其它可用区上的应用可以继续运行,从而实现高可用性。
 
由于跨越了多个亚马逊云服务可用区,EVCache集群是不会挂掉的。当其中的实例偶然挂掉时,通过一致性哈希跨集群分片来使缓存的影响降到最低。
 
在保持高可用性的同时,操作EVCache集群的总体成本很低,因为缓存没有命中时访问亚马逊云服务服务的成本较高,如访问SimpleDB、AWS S3、EC2上的Cassandra等等。EVCache 集群的总体成本在高稳定,线性扩展的条件下还是令人满意的。
 
隐藏在需求后面的是数据或状态所需要的每个请求服务,必须是跨地区可用的。高可靠性数据库和高性能缓存是支持分布式架构的基础设施,一个典型场景是将缓存架构于数据库前面或其它持久存储前面。如果没有缓存的全局复制,一个地区的的会员切换到另外一个地区时,会在新的地区缓存中没有原地区的数据,这种情况称为冷缓存。处理这种缓存数据丢失的办法只有重新从数据库加载,但是这种方式会延长响应时间并对数据库形成巨大冲击,EVCache 除了跨可用区复制之外,还提供了跨区域复制,对基于AWS的高可用性进行了增强。
 
4EVCache的典型应用场景
 
Netflix的用户体验重度依赖于大容量、低时延、全球可用的缓存数据层。例如,用户坐在沙发上看电影或者电视节目,在用户的每一次交互中都有缓存的身影,从会话存储到视频历史,到用户状态,都得益于EVCache的稳定和高容错性。
 
这里介绍一个典型的用例——向用户推荐与已看历史中节目类似的电影或者电视节目。
 
内容相似性推荐服务给出了与已看历史中节目类似的电影或者电视节目的相似性列表。一旦计算出了相似性,就存储在SimpleDB/S3 中,前端使用EVCache。当任何应用或者算法需要这些数据的时候,可以从 EVCache提取数据,并返回结果。具体过程如下:
 
一个客户向Web应用发了一个页面请求,处理这一请求需要得到一个电影或电视节目的相似性列表
 
Web应用查询 EVCache 来得到这些数据,这样场景的典型缓存命中率高于99.9%
 
如果缓存没有命中, Web应用将调用相似性计算服务来计算这些数据
 
如果已经计算过的数据也没有命中的话, 相似性计算服务将从 SimpleDB中读取数据。如果在SimpleDB 没有,相似性计算服务根据给出的电影或电视节目重新计算相似性
 
相似性计算服务在计算出电影或电视节目的数据后,将数据写入到 EVCache中
 
最后,相似性计算服务生成客户端所需要的响应并返回给客户端
 
EVCache 是线性扩展的,通过容量监控,可以在一分钟内扩容,在几分钟内完成重新均衡和数据预热。
 
以上就是我们关于云服务融入分布式缓存系统架构的简要分析,希望对大家有所帮助。
 

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣