QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

架构 Twitter

  • 2008-06-22
  • 本文字数:1120 字

    阅读完需:约 4 分钟

风行的社交应用Twitter ,其底层架构最近已成为多次讨论的焦点。由于团队试图解决一些问题,Twitter已经有几次停止运行的情况,并关闭了几个常用的功能。从Twitter 的前进脚步之中,我们能学到些什么呢?包括 Om Malik Dare Obasanjo 在内的几个人猜测是 Twitter 的底层架构导致了这些问题的出现。最近,Robert Scoble 就应用情况和公司前景采访了Twitter 的Evan Williams 和Biz Stone 。采访的视频可在 qik 上找到。

在采访中,Williams 和 Stone 回答了关于 Twitter 数据架构的大问题:Twitter 是否使用单实例存储(SIS)类型的方法来处理用户消息?在大约 13 分钟的采访记录中,Williams 谈到了消息存储和用户时间线检索:

它不是这么处理的(为用户的每个跟随者都产生一个消息副本),但实际上这可能更有效率。现在消息存储到数据库中,当人们想获取他们的时间线时,我们从数据 库中构造时间线,然后缓存到内存中,当然不是每次都缓存。但由于内容写入太频繁,我们往往也要频繁地访问数据库,而这只是为了更新缓存。所以缓存中有很多 消息副本,而在磁盘上却只有一条消息。我们以后的架构可能更多的是以多次写入的方式,因为读取在这种方式下将快更多。

从 SIS 消息架构迁移的可能性为利用像数据Sharding 这样的数据技术开启了一扇大门,数据Sharding 技术已经在许多高容量网站和应用中广受欢迎。Randy Shoup谈到了eBay 通过部分利用Sharding 来架构系统的方式,以此获得高可伸缩性:> 数据库层次的问题比较有挑战性,原因是数据天生就是有状态的。我们会按照主要的访问路径对数据做水平分割(或称为“Sharding”)。例如用户数据目 前被分割到20 台主机上,每台主机存放1/20 的用户。随着用户数量的增长,以及每个用户的数据量增长,我们会增加更多的主机,将用户分散到更多的机器上 去。商品数据、购买数据、帐户数据等等也都用同样的方式处理。用例不同,我们分割数据的方案也不同。

Bogdan Nicolau 写过一篇为数据库Sharding 基础的概述。在该系列中,Bogdan 讨论了如何决定在何处、以及如何为应用分割数据。决定时的主要一点是:> 我试图表达的是,无论你选择什么逻辑来切分表,总是要记住你不想有任何join、order by、或limit 语句,这些语句会需要不止一个的表Shards。

Bogdan 继续谈论了应用端对Shards 的利用。Bogdan 提供了几个代码例子来解释一个典型问题,同时还解释了背后的原理:> 正如你所看到的,因为要生成映射表,负担主要落在了写入一方。读取时就不需要关心涉及的数据切分算法了。

随着众人参与关于如何扩展Web 2.0 的讨论,Twitter 也许将继续向一个更稳定、可伸缩的架构迈进。InfoQ 有许多性能和可伸缩性相关的资源,在这里查看这些资源

查看英文原文: Architecting Twitter

2008-06-22 21:402595
用户头像

发布了 151 篇内容, 共 62.8 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

阿里商旅账单系统架构设计实践

阿里技术

账单 阿里商旅 账单系统 账单数据

在 K8S 中只会 CI 不会 CD ?3 种方式,让极狐GitLab 和 K8S 高效协同!

极狐GitLab

DevOps 云原生 k8s CI/CD 集成

AI与数据双向赋能,DingoDB成向量海时代超强引擎

九章云极DataCanvas

Spring高手之路3——揭秘Spring依赖注入和SpEL表达式

砖业洋__

spring 依赖注入 属性注入 SpEL表达式 Bean配置

探索Reactor网络模型在当今应用领域的革新

华为云开发者联盟

开发 华为云 企业号 7 月 PK 榜 华为云开发者来联盟

如何用极狐GitLab 为 Android App 创建自动化CI/CD?详细教程来了

极狐GitLab

自动化 CI/CD Android; keystore fastlane

《APaaS应用实施方法论》电子书正式发布

明道云

影响云安全的因素有哪些?如何保障云安全?

行云管家

云安全 企业上云 堡垒机 自动化运维 云管

全面构建AI能力,AIFS为AI产业发展按下“加速键”

九章云极DataCanvas

Python爬虫超详细讲解(零基础入门,老年人都看的懂)

Java随想录

Java Python

如何理解小程序插件?微信及支付宝官方详解

没有用户名丶

一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

不在线第一只蜗牛

Lua脚本 redis 底层原理 Redis 可视化工具

模糊测试公布结果,大众漏洞被曝光

云起无垠

网络安全 模糊测试

打造数据处理新范式,DataPilot畅游数据向量海

九章云极DataCanvas

Apache Flink 在翼支付的实践应用

Apache Flink

大数据 flink 实时计算

极狐GitLab 3 步优化软件价值流,谨防偷走时间、制造瓶颈的“幕后黑手”

极狐GitLab

gitlab 可视化 软件研发 价值流管理 VSM

我来泼盆冷水:正面迎击AI的时代千万别被ChatGPT割了韭菜

EquatorCoco

人工智能 信息安全 ChatGPT

什么是MES,MES系统有哪些功能模块?MES系统概述

优秀

MES系统 mes

Nautilus Chain 主网上线,创世 ZBC 质押即将开启

威廉META

开源直播源码平台处理卡顿问题技巧方案_山东布谷科技创作

山东布谷科技

开源 软件开发 直播 源码搭建 直播源码

Nautilus Chain 主网上线,创世 ZBC 质押即将开启

鳄鱼视界

大模型时代下的全新变革

九章云极DataCanvas

九章元识大模型加速AI产业创新发展

九章云极DataCanvas

《中国民用航空业零代码应用与推广白皮书》正式发布

明道云

单一可信源代码托管平台的构建之道

极狐GitLab

gitlab 安全 高效 便捷 源代码管理

MobPush 厂商通道申请指南

MobTech袤博科技

大数据 华为 程序员 前端 Android;

【有奖互动】开发者版本新特性,你期待哪些更新?#HDC.Together2023#

HarmonyOS开发者

HarmonyOS

你的极狐GitLab SaaS上开启这些设置了吗?代码安全,安心下班!

极狐GitLab

gitlab CI/CD DevSecOps 代码安全 软件供应链安全

火山引擎DataTester:三类AB实验,让企业营销拥有灵敏“网感”

字节跳动数据平台

大数据 A/B测试 对比试验 企业号 7 月 PK 榜

下载|GitLab 2023 年 DevSecOps 全球调研报告:安全左移深入人心、AI/ML 蔚然成风

极狐GitLab

gitlab DevSecOps AI/ML 安全左移 安全实践

架构Twitter_Ruby_Steven Robbins_InfoQ精选文章