AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

架构 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:402865
用户头像

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

关注

评论

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

Nexpose 8.15.1 for Linux & Windows - 漏洞扫描

sysin

Nexpose

Microsoft SQL Server 2016 with SP3 GDR (2025 年 7 月更新)

sysin

SQL Server

Microsoft SQL Server 2017 RTM GDR & CU31 (2025 年 7 月更新)

sysin

SQL Server

年损耗超2300万!制造业工具管理困局背后的RFID破局之道

斯科信息

RFID解决方案 斯科信息 RFID技术

揭秘LummaStealer恶意软件:虚假验证码如何攻陷预订网站

qife122

恶意软件 钓鱼攻击

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 7 月更新)

sysin

windows 11

Microsoft SQL Server 下载汇总 (2025 年 7 月更新)

sysin

SqlServer

使用Python和Gradio构建基于OpenAI GPT-4的AI聊天机器人

qife122

Python 聊天机器人

Windows 10 version 22H2 中文版、英文版下载 (2025 年 7 月更新)

sysin

Windows 10

联邦学习中的持续学习技术

qife122

机器学习 联邦学习

华为小艺AI竞赛Agent首战国际数学奥林匹克大赛(IMO)荣获佳绩!

新消费日报

Web3外包开发注意事项

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

10年JAVA转GO,冲刺金九银十30K+,中间件深挖和拷打,踩坑分享

王中阳Go

Go 面试

Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

sysin

burp

Microsoft SQL Server 2019 RTM GDR & CU32 (2025 年 7 月更新)

sysin

SQL Server

Microsoft SQL Server 2022 RTM GDR & CU20 (2025 年 7 月更新)

sysin

SQL Server

黑龙江等保测评:保障医疗行业信息系统安全的生命线

等保测评

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.17.1 ED

sysin

Cisco

Xcode 26 beta 4 (17A5285i) - Apple 平台 IDE

sysin

xcode

Microsoft Exchange Server 2016 Cumulative Update 23

sysin

Microsoft Exchange

Microsoft Exchange Server 2019 Cumulative Update 15

sysin

Microsoft Exchange

2025年最佳网络监控工具Top8

qife122

网络安全 网络监控

提高财务敏捷性,构建科学的资金运营战略

智达方通

全面预算管理 财务管理 财务规划

基于YOLOv8的电网绝缘子破损与闪络缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolo

Jarvis Agent快速开始

SkyFire

agent LLM

Windows Server 2025 中文版、英文版下载 (2025 年 7 月更新)

sysin

Windows Server

Jarvis Agent项目介绍

SkyFire

agent LLM Jarvis

Web3 项目的外包开发的技术难点

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Windows Server 2022 中文版、英文版下载 (2025 年 7 月更新)

sysin

Windows Server

黑龙江等保测评:筑牢网络安全基石的关键举措

等保测评

Windows 11 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 7 月更新)

sysin

windows 11

架构Twitter_Ruby_Steven Robbins_InfoQ精选文章