科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网CIO与应用频道Netflix用Apache Cassandra替代甲骨文数据库

Netflix用Apache Cassandra替代甲骨文数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于每天都需要处理数十亿次的读写操作,Netflix开始用NoSQL数据库Cassandra替代了原来的甲骨文数据库。随着Netflix流媒体服务规模的不断增长,Netflix不得不重新考虑自身的数据与存储战略,以应对托管在云服务上、且飞速增长的工作负载。

来源:网界网 2013年5月13日

关键字: 云计算 Netflix 甲骨文 数据库 AWS

  • 评论
  • 分享微博
  • 分享邮件

由于每天都需要处理数十亿次的读写操作,Netflix开始用NoSQL数据库Cassandra替代原来的甲骨文数据库。

作为网络媒体行业的领军企业,Netflix目前在全球40多个国家共拥有3300万名订阅者。随着Netflix的“watch now”(现在观看)流媒体服务规模的不断增长,Netflix不得不重新考虑自身的数据与存储战略,以应对托管在云服务上、且飞速增长的工作负载。如今,Netflix从甲骨文数据库向NoSQL数据库Cassandra迁移的工作已经基本接近尾声。Netflix的这一举措不仅可以提升可访问性,还可以基本消除由数据库模式调整所导致的宕机。

Netflix在2007年推出了自己的流媒体服务,当时在后端使用的是甲骨文数据库。Netflix的云架构师Adrian Cockcroft说:“我们有一个单独的数据中心,这意味着我们存在一个单点故障。我们在流量和容量上已经快接近上限了。如今,人们能够通过手机、Wii游戏机、Roku盒子,以及其他方式观看Netflix的流媒体节目,对可访问性的需求正在持续增长。每个季度我们都会增加许多新的客户,如今有越来越多的客户开始使用流媒体,并且这一数量正在飞速增长。”

Cockcroft称,与客户数量同样飞速增长的是数据。Netflix在2011年1月的API请求数量比2010年1月份增长了37倍。Netflix清楚,服务中断或是流媒体服务质量低下将会导致客户流失。 “我们知道,我们必须要摆脱原来的数据中心,这样才能够持续运营下去,并且保持不断增长。” Cockcroft说。

在2010年,Netflix开始将其数据迁移至亚马逊网络服务(Amazon Web Services,简称为AWS)上。Netflix的下一步举措是用Apache Cassandra代替了原来的甲骨文数据库。Cassandra是一种以高扩展性和企业级可靠性著称的开源NoSQL数据库。Cockcroft 解释说:“对于我们来说,集中式SQL数据库存在一个问题,那就是‘所有的鸡蛋都放在了一个篮子里’。在不出事的情况下,这种做法还是非常方便的。由于这些数据库非常昂贵,所以你也倾向于将所有的东西都放在一起。不过一旦出事,所有的东西就全完了。”

另一个问题是,模式调整需要系统停止运行。Cockcroft解释说:“每隔两周,我们就必须要让系统停止运行至少十分钟,以加入新的模式。SQL数据库的这些局限性已经严重影响到了网站的可访问性和扩展性。”

由于能够灵活快速地创建和管理数据集群,尤其是在云服务之上,Netflix最终选择了DataStax的Cassandra。Netflix的云服务与平台工程经理Christos Kalantzis说:“与甲骨文方案类似的解决方案无法很好地在虚拟硬件上运行。Cassandra的架构、可访问性和持续性之间的平衡性以及可扩展性,让它们成为了明智的选择。为了解决这些问题,Netflix首先将数据从甲骨文数据库迁移到亚马逊的SimpleDB分布式数据库上,然后再将这些数据迁移至Cassandra之上。”

Cockcroft说:“Cassandra让我们的业务拥有了更高的灵活性。我们不必提前规划容量,不用求人帮助我们创建东西,同时再也不用担心空间不足或停电的问题。我在十分钟之内就可以在全球任意一个地方创建一个Cassandra集群。在营销部门决定应该将精力放在全球的某个地方时,我们已经为他们做好了准备。”此外,模式调整再也不需要系统停止运行了。由于在Cassandra中不存在模式调整,所以系统也不会因此停止运行。

当然,由于使用多个Cassandra实例,因此与使用甲骨文数据库相比,管理系统的数量会更多一些。不过,Cockcroft指出:“他们倾向于在不同的时间内逐步进行分解,因此你是一点点的失去整个系统,而不是一下子失去整个系统。此外,每个存储都更加易于管理。”

目前,Cassandra对于Netflix而言是首选数据库,因为它们几乎满足了Netflix的所有需求。Netflix已经将95%的数据存储在Cassandra上,包括客户账户信息、影片评分、影片元数据、影片书签和日志等。Netflix在750多个节点上运行着50多个Cassandra集群。高峰时,Netflix每秒要处理50,000多个读取和100,000写入操作。Netflix平均每天要处理21亿次的读取与43亿次的写入操作。

Cassandra为Netflix提供了一个新的坚实基础。正如Cockcroft所说的那样,“它们为我们更好地向客户提供优质服务提供了可能。”

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章