加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

Tumblr:150亿月浏览量背后的架构挑战

发布时间:2016-10-01 02:23:05 所属栏目:系统 来源:csdn.net
导读:副标题#e# 导读:和许多新兴的网站一样,著名的轻博客服务Tumblr在急速发展中面临了系统架构的瓶颈。每天5亿次浏览量,峰值每秒4万次请求,每天3TB新的数据存储,超过1000台服务器,这样的情况下如何保证老系统平稳运行,平稳过渡到新的系统,Tumblr正面临

 

为Dashboard收件箱设计的Cell架构

现在支持Dashboard的功能的分散-集中架构非常受限,这种状况不会持续很久。

解决方法是采用基于Cell架构的收件箱模型,与Facebook Messages非常相似。

收件箱与分散-集中架构是对立的。每一位用户的dashboard都是由其追随者的发言和行动组成的,并按照时间顺序存储。

就因为是收件箱就解决了分散-集中的问题。你可以会问到底在收件箱中放了些什么,让其如此廉价。这种方式将运行很长时间。

重写Dashboard非常困难。数据已经分布,但是用户局部升级产生的数据交换的质量还没有完全搞定。

数据量是非常惊人的。平均每条消息转发给上百个不同的用户,这比Facebook面对的困难还要大。大数据+高分布率+多个数据中心。

每秒钟上百万次写入,5万次读取。没有重复和压缩的数据增长为2.7TB,每秒百万次写入操作来自24字节行键。

已经流行的应用按此方法运行。

cell

每个cell是独立的,并保存着一定数量用户的全部数据。在用户的Dashboard中显示的所有数据也在这个cell中。

用户映射到cell。一个数据中心有很多cell。

每个cell都有一个HBase的集群,服务集群,Redis的缓存集群。

用户归属到cell,所有cell的共同为用户发言提供支持。

每个cell都基于Finagle(Twitter推出的异步的远程过程调用库),建设在HBase上,Thrift用于开发与firehose和各种请求与数据库的链接。(请纠错)

一个用户进入Dashboard,其追随者归属到特定的cell,这个服务节点通过HBase读取他们的dashboard并返回数据。

后台将追随者的dashboard归入当前用户的table,并处理请求。

Redis的缓存层用于cell内部处理用户发言。

请求流:用户发布消息,消息将被写入firehose,所有的cell处理这条消息并把发言文本写入数据库,cell查找是否所有发布消息追随者都在本cell内,如果是的话,所有追随者的收件箱将更新用户的ID。(请纠错)

cell设计的优点:

大规模的请求被并行处理,组件相互隔离不会产生干扰。 cell是一个并行的单位,因此可以任意调整规格以适应用户群的增长。

cell的故障是独立的。一个Cell的故障不会影响其他cell。

cell的表现非常好,能够进行各种升级测试,实施滚动升级,并测试不同版本的软件。

关键的思想是容易遗漏的:所有的发言都是可以复制到所有的cell。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读