标签 gossip 下的文章

简介和概述

Netflix长期以来一直是微服务模式的倡导者。该模型提供更高的可用性,故障恢复能力和松耦合。这种架构的缺点是潜在的用户体验。每当客户加载主页或开始流式传输电影时,都会有许多微服务完成该请求。这些微服务中的大多数使用某种有状态的系统来存储和提供数据。几毫秒可以快速加起来,并产生多秒的响应时间。

Netflix的云数据库工程团队一直在寻找方法,从应用程序的数据库响应时间中减少毫秒,同时保持我们的本地高可用性和多数据中心高可用性的目标。考虑到这个目标,我们创建了Dynomite。

受Dynamo白皮书以及Apache Cassandra的经验启发,Dynomite是一个分片和复制层。Dynomite可以将现有的非分布式数据存储(如Redis或Memcached)制作成完全分布式的多数据中心复制数据存储。

服务器架构

动机

在开源世界中,有各种单服务器数据存储解决方案,例如Memcached,Redis,BerkeleyDb,LevelDb,Mysql(数据存储)。这些单服务器数据存储的可用性故事通常最终会成为主从设置。一旦流量需求超过这个设置,下一个合乎逻辑的进程就是引入分片。大多数人会同意这种设置不是微不足道的。而且,管理来自不同分片的数据对于应用程序开发人员来说也是一项挑战。

- 阅读剩余部分 -