揭秘Facebook实时聊天架构:如何每天扩展超过数十亿条消息?

2020 年 2 月 20 日

揭秘Facebook实时聊天架构:如何每天扩展超过数十亿条消息?

Facebook 作为全球最大的社交网络,截止 2019 年 12 月 31 日,Facebook 月活跃用户达到 25 亿,远超中国的 16 亿人。坐拥如此庞大的、可怖的用户数量,Facebook 又是如何保持聊天系统能够及时而无误地运转呢?Shivang 为我们揭开了 Facebook 的实时聊天架构背后的一切。

本文经原作者授权,由 InfoQ 中文站翻译并发布。

在这篇文章中,我将讨论 Facebook 的实时聊天架构,这个架构每天可以发送超过数十亿条消息。它在后端使用的是什么技术?技术栈是什么?系统架构又是什么?像 Facebook 这样拥有如此庞大用户数量的平台,在推出和扩展这样的功能时,面临的主要挑战是什么呢?

1. 介绍

所有这一切都始于那场 Hackathon,当时,有几名 Facebook 工程师编写了一个聊天原型,并向团队展示了这个原型。这个原型的功能非常基础,只有最基本的功能,浮动的聊天框可以在网页上拖动,还可以通过页面重载和其他页面导航过程中保持不变(即持久化)。

Facebook 工程师们采用了这个原型,将其开发成一个成熟的实时聊天功能,成了 Facebook 服务生态系统中使用率最高的功能之一。

它为全世界每天发送的数十亿条信息提供了便利。社交平台的工程团队对其进行了很好的扩展,响应时间不到 100 毫秒

原文链接:【 https://www.infoq.cn/article/V2HtoqiTlSrkQb1MWIAH 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 2 月 20 日 15:08 1558

评论

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

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

2020年6月11日 高性能MySQL

瑞克与莫迪

搭建websocket消息推送服务,必须要考虑的几个问题

GoEasy消息推送

websocket 消息推送 即时通讯

【写作群星榜】6.5~6.11写作平台优秀作者&文章排名

InfoQ写作平台

写作平台 排行榜

回忆杀:我的编程能力是如何突飞猛进起来的

Dimple

Java android 编程 面向对象思想

终于有一个 Java 可以用的微信机器人了

犀利豆

Java

读笔 | 既然拖延症难以根治,不妨暂且享受它

张鸱鸺

读书笔记 时间管理 随笔杂谈

架构第一周-学习总结

seng man

面向对象五大基本原则

彭阿三

面向对象设计 面向对象五个基本原则 基本原则

五分钟学会Elasticsearch查询代理设计

奈学教育

elasticsearch ES

Apache Spark有哪些局限性

奈学教育

Apache Spark

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

数据同步,应该如何设计

迹_Jason

从微服务到Service Mesh

博文视点Broadview

架构 微服务 Service Mesh istio 架构师

Apache Spark有哪些局限性

古月木易

spark

徒手撸框架--实现IoC

犀利豆

Java spring

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

<<架构师训练营>>第一周作业

0x12FD16B

极客大学架构师训练营

SignalR Core之Hubs基本概念

猫定谔的靴

.net core SignalR realtime Hubs

读懂才会用:Redis ZSet 的几种使用场景

小眼睛聊技术

Java redis 架构 后端 学习总结

可视化算法网站汇总,从此简单学算法!(附动图)

王磊

Java 算法

架构师训练营第一次课程感想小记1

tuuezzy

软件工程 求职 架构师 UML

五分钟学会Elasticsearch查询代理设计

古月木易

作业一:食堂就餐卡系统设计

seng man

极客大学架构师训练营

Solidity的Bytecode和Opcode简介

程序那些事

区块链 智能合约 以太坊 Ethereum eth

清华大佬马士兵告诉你阿里巴巴P5到P8级需要掌握哪些技术?

周老师

Java 程序员 架构 微服务 马士兵

关于UML、4+1视图、系统架构的思考

吴建中

vs code中使用vetur对eslint格式化

玏佾

vscode

作业 - 1 & 2

Happy-Coming

Homework

徒手撸框架--实现Aop

犀利豆

Java spring

ERC20 Short Address Attack

程序那些事

区块链 以太坊 Token ERC20 代币

揭秘Facebook实时聊天架构:如何每天扩展超过数十亿条消息?-InfoQ