2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

扩展 Twitter 以支撑新负载峰值

  • 2013-09-01
  • 本文字数:1420 字

    阅读完需:约 5 分钟

对于许多人而言,Twitter 已经变成一种不可或缺的通讯工具。个人和企业每天都在以一种更深广的方式使用Twitter,甚至所有人都对“其扩展性如何”感兴趣。本月初,Twitter 经历并无缝地处理了一次每秒143199 条tweet 的新负载峰值——与当前每秒5700 条tweet 的稳定状态相比,这一数值可谓是大幅飙升。Twitter 平台工程副总裁Raffi Krikorian报道了这项新纪录,并花时间回顾了已经进行的工程变更,它们扩展了Twitter,使其流量达到了这样一个新的水平。

三年前,围绕2010 世界杯的活动使Twitter 达到了每秒2000 条tweet 的峰值,导致了重大的稳定性问题,也使Twitter 工程团队意识到重构系统的必要性。后续工程检查发现,Twitter 拥有世界上最大的Ruby on Rails 部署,所有东西都在一个代码库中,应用程序和工程团队均是一个庞大而统一的整体。它的MySQL 存储系统已经达到上限,硬件资源却没有充分利用,而反复“优化”又致使代码库僵化。Krikorian 在报告中指出,通过此次检查,Twitter 确立了几大目标:机器数量减至十分之一;迁移到松耦合的面向服务的体系架构,该架构边界更清晰而且内聚性更高;可以通过更小的获得授权的团队更快地推出新功能。

Twitter 放弃了 Ruby,转而使用 JVM。它已经达到了 Ruby 进程级并发模型的上限,于是需要一种能够提供更高吞吐量而且能够更好地利用硬件资源的编程平台。通过在 JVM 上重写代码库,Twitter 获得了 10 倍的性能提升,现在每台主机每秒可以推送 10-20K 次请求。

Twitter 体系结构的最大变化是以 tweet、“时间线(timeline)”和用户服务等三个“核心名词”为重点,迁移到面向服务的体系结构。基于“契约式设计(design by contract)” 的开发方法,使各团队可以按照预先约定的接口定义独立地进行接口实现。服务具有自治和自包含的特点,这也在新的工程团队结构中得到了反映。异步 RPC 平台 Finagle 的创建,使所有的工程团队可以用一种标准的方式处理并发、故障恢复及负载均衡。

新体系结构在 Twitter 工程团队的构成中得到了反映。服务和团队都有自治且自包含的特点,而且每个团队都有自己的接口和问题域。因此,不需要任何人成为整个系统的专家,也不需要每个人都考虑 Twitter 的可扩展性。团队的关键能力是抽象出每个需要的人都可以使用的 API。

Krikorian 说,即使运用了淡化整体性的体系结构,持久化依然是一个巨大的瓶颈。因此,Twitter 已经利用 Gizzard 把单一的主 MySQL 数据库替换成一个具有容错性的 Sharded 数据库的分布式结构。

这里强调一个扩展大型系统的共同点,即可观测性和统计信息是管理系统和提供具体数据支持优化工作的关键工具。Twitter 的开发平台包含了这样的工具,使开发人员可以非常容易地提供请求跟踪和统计报告。

Twitter 扩展故事的最后一部分是在运行时环境配置和测试环境方面做了许多工作。在“Twitter 扩展”过程中,测试实际上只能在生产环境完成,部署新功能也需要团队间具有挑战性的协作水平。因此,Twitter 创建了 Decider 机制,在该机制下,新功能只有在部署完成后才能启用。在部署时,新功能可以设定为“关闭(off)”状态,然后或者以二进制方式(一次性)启用,或者按操作比例逐步启用。

总的来说,现在的 Twitter 比以前更具扩展性、更有弹性且更灵活,其流量正在打破新纪录,而且它可以在不受重大干扰的情况下推出新功能。在博文的末尾,Krikorian 鼓励读者继续关注 @twittereng ,以了解 Twitter 重构的更多细节。

查看英文原文: Scaling Twitter to New Peaks

2013-09-01 23:112806
用户头像

发布了 256 篇内容, 共 100.8 次阅读, 收获喜欢 12 次。

关注

评论

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

BaikalDB MCP Server :链接数据库和AI的直通桥

百度Geek说

分布式数据库 LLM MCP

低代码“新建日程”实操攻略,效率直接翻倍拉满

引迈信息

2025图文摘要机构哪家值得信赖?意得辑备受好评

科技汇

5支AI短片亮相釜山电影节引热议,创作者肯定Seedance、Seedream模型能力

新消费日报

从被动防御到主动免疫进化!迈格网络“天机” AI 安全防护平台,助推全端防护性能提升

迈格网络

ONES 荣获中国信通院铸基星图 ALM 平台“领航之星”

万事ONES

ONES 中国信通院 ALM 平台 应用生命周期管理 领航之星

时序数据库 TimechoDB V2.0.6 发布 | 新增查询写回、黑白名单等功能

Apache IoTDB

n8n+MySQL实现数据库查询!

王磊

数栈产品如何实现国际化

袋鼠云数栈

国际化 袋鼠云 数栈

基于 AI 网关提升大模型应用可用性的实践

阿里巴巴云原生

阿里云 云原生 LLM AI网关

ISO 50001 与碳足迹核算双达标:MyEMS 的能源管理体系合规实践

开源能源管理系统

开源 开源能源管理系统

Palo Alto网络防火墙日志监控

运维有小邓

深入解析Wallarm安全边缘:API边缘的即时防护技术

qife122

云安全 API安全 云安全网络安全

媲美专业稳定器!天玑9500首发4K120帧双轨防抖,Vlog神器来了

新消费日报

面向企业构建科学完善的财务报告解决方案

智达方通

全面预算管理 财务管理

微信分享的图纸在电脑上打不开怎么解决?

在路上

cad

当AI和低代码成了你的团队

秃头小帅oi

Adaptix C2:跨平台渗透测试与对抗仿真框架

qife122

网络安全 跨平台 渗透测试

如何在CAD图纸中添加外部参照?

在路上

cad cad看图 CAD看图王

移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现

阿里巴巴云原生

阿里云 云原生 Arms

阿里云携手 海信聚好看 构建开源云原生大数据平台最佳实践

阿里云大数据AI技术

大数据 阿里云 数据湖 开源大数据平台

Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现

开源能源管理系统

开源 能源管理系统

东荟城名店仓CLUB CG「Chill『饰』玩周年庆」 过千款材料 打造DIY天堂

编程猫

捷行第三期读书会开启!欢迎免费参加!

ShineScrum

技术小白福音!给老旧命令行程序加个GUI界面,从此点点鼠标就能用!

阿星AI工作室

学习 AI 大模型 AI产品经理

华为,让金融智能体月映千江

脑极体

AI

使用EventLog Analyzer进行Apache日志监控和日志分析

运维有小邓

数字孪生 + 区块链:MyEMS 引领能源管理技术融合新趋势

开源能源管理系统

开源 能源管理系统

从“救火队长”到“战略指挥”:现代项目管理者的效能进化论

Tecjt_锦图科技

项目管理 效率工具 敏捷开发 团队协作

非凸底仓增强算法上线西部证券,AI交易工具普惠个人投资者

非凸科技

IT项目管理主要做什么?-ManageEngine卓豪

ServiceDesk_Plus

ManageEngine卓豪

扩展Twitter以支撑新负载峰值_SOA_Saul Caganoff_InfoQ精选文章