为何9亿用户的WhatsApp,只需50名工程师?

WhatsApp高并发架构解析:Erlang+C+极简协议实现400亿消息日处理 即时通讯(IM)系统是分布式架构的经典实践场景,其核心挑战在于高并发、低延迟与强一致性三者的平衡。底层原理依赖于轻量级进程模型、用户态网络优化与确定性分片路由等关键技术,技术价值体现在将单机百万连接、毫秒级端到端投递、全球状态同步等能力工程化落地。典型应用场景涵盖社交App、企业通信平台及物联网消息中台。本文深入拆解WhatsApp真实生产架构,聚焦Erlang Actor模型的容错优势、C语言零拷贝网络层实现、12字节二进制协议设计,以及三层寻址与客户端状态计算等反直觉但高效的工程决策。 阅读详情

图片描述
WhatsApp在非常短的时间里已经取得了非常大的规模。如今,WhatsApp只雇用了大约50名工程师,而且这么小的工程师团队几乎所有的东西都是自己在运行。

WhatsApp的软件工程师Jamshid Mahdavi简短地讨论了公司一些不同寻常的做法。诀窍之一是,该公司使用一种叫Erlang的编程语言建立自己的服务。虽然在编程社区并不那么流行,但Erlang特别适合于庞大用户群的通信,并允许工程师在不中断服务的情况下部署新的代码。其工程设计不同于任何他所见过的,部分原因是它使用Erlang和一个叫FreeBSD的操作系统,而且还力图保持其操作的简单。“对于建设高规模的基础设施,这是一个完全不同的方式。”他表示。

并行代码

WhatsApp使用Erlang,是对处理并发性多进程的编程语言的一个推进。随着互联网服务进入更多人的生活,这样的语言自然变得更有吸引力。

Erlang是爱立信的工程师在80年代为了高速电话网络开发的语言。“与其先发明一种语言,然后再搞清楚用它做什么,他们决定开发一个解决特定问题的语言,” 英国的Erlang大师Francesco Cesarini说道,“这个问题就是大规模可扩展性和可靠性。电话网络是当时唯一需要这些特性的系统。“

Erlang仍然不是编码界的主流,但在WhatsApp和其他的互联网公司,包括微信和Whisper,它已经在新的类似庞大的电话网络的应用里找到了家。本质上说,WhatsApp是手机短信的替代品。它也要求“可扩展性和可靠性。”

保持简单

这个语言确实有它的缺点。比如相对较少的程序员知道Erlang,而且它并不一定与很多互联网公司已经建成的代码相契合。Facebook用Erlang建立了自己原始的Facebook Chat,但最终还是不得不重建以更好地适应Facebook总框架的其他部分。

Mahdavi认为Erlang程序员的相对稀缺性不是问题。“我们的招聘策略是寻找最优秀的工程师。我们不会认定工程师必须知道Erlang,”Mahdavi表示。“我们期望新进来的工程师,通过第一个星期来熟悉这个语言并学会使用开发环境。如果你雇佣聪明的人,他们就能做到这一点。”

公司获得成功,是因为聘请在很多方面都适应性强的工程师。关于公司的秘决,Mahdavi 的回应似乎过于简单。但是,这就是重点,“最重要的就是非常专注于你要做的,”他说。“花时间在其他方面、其他技术,即使是发生在办公室的事情,像开会都是分心的。”

在 WhatsApp,员工几乎不开会。虽然他们只有几十人。但这同样也是专注的意义所在。

点击原文

译者简介:Ted,新加坡Realtek软件工程师,从事WiFi芯片、嵌入式系统软件设计及开发,物联网等方面工作。

WhatsApp聊天分析实战:Streamlit构建私域文本洞察工作流 私域运营中,微信群、WhatsApp等聊天记录蕴含大量用户真实反馈与业务信号,但原始文本杂乱、语义隐晦、分析难落地。本文围绕文本清洗、语义增强、行为建模与交互可视化四大技术环节,详解如何基于Python构建可解释、可调试、可复用的轻量级分析流水线。重点解决跨平台时间戳解析、中英混杂分词、家长话术情感微调、发言时效性量化等高频工程痛点,并以Streamlit实现‘点击词云→溯源消息→导出证据’的闭环诊断能力。适用于社群运营、产品需求挖掘及NLP工程实践者,所有代码本地运行,5000条消息处理仅需12秒。 阅读详情

相关推荐

WhatsApp聊天记录分析:Pandas清洗与Plotly交互可视化实战

即时通讯群聊数据是高保真、连续、富语义的群体行为时间戳日志,属于典型非结构化时序文本数据。其分析本质是将原始消息流转化为结构化事件序列,核心在于可靠的时间解析、发件人识别与多行消息合并。Pandas凭借向量化操作与内置时序处理能力,显著优于正则+字典的手工解析;Plotly则通过可缩放时间轴、悬停上下文与离线HTML交付,支撑探索性分析与业务决策闭环。本文聚焦WhatsApp导出.txt文件这一高质量、低风险、零API依赖的数据源,详解从编码检测、多行合并、地域化时间标准化,到发言热力图、响应率散点图、社交

weixin_34122810的博客 456

看了几个电影

还不错,看了有笑也有泪,^_^ 一直忙,几乎没看过电影,看了后感觉还不错,不过最喜欢的还是科幻,^_^。 

温馨的风的博客 613

Frida动态Hook实战:逆向分析WhatsApp Tenor GIF搜索API

在移动应用开发与安全研究领域,HTTPS加密通信和网络请求拦截是核心技术点。其原理在于通过中间人攻击或运行时注入技术,解密或旁路应用的加密流量,从而分析数据交互过程。这项技术的价值在于帮助开发者理解第三方服务集成机制、进行安全审计或自动化测试。常见应用场景包括API逆向工程、数据流分析和漏洞挖掘。本文聚焦于使用Frida工具动态Hook WhatsApp应用,针对其集成的Tenor GIF搜索功能进行实战分析,完整展示了如何捕获并解析加密的API请求与响应,为类似场景提供了一套可复用的技术方案。

weixin_34198762的博客 365

YARE开发记录(2)

/*------------------------------------------------------------------------------------------------------------ Copyright (c) 2006 YanLiang CSkeleton对象代表骨骼动画的数据和操作.包括: 骨骼数据信息. 动画(作)信息. ------

YUYU_s的专栏 841

FoonteDuino:ESP32/ESP8266 WhatsApp消息发送Arduino库

WhatsApp API 是当前物联网设备实现高抵达率通知的关键通道,其基于 HTTPS 的 RESTful 接口需处理认证、JSON 构建、TLS 连接与错误重试等复杂逻辑。面向嵌入式开发的轻量级封装,需兼顾资源约束与协议鲁棒性——这正是 Arduino 平台对接第三方云服务的核心挑战。FoonteDuino 库聚焦事件驱动型通知场景,通过硬件抽象层(HAL)、协议适配层(PAL)与应用接口层(AIL)三级解耦,将 Fonnte WhatsApp API 转化为单函数调用能力;它深度适配 ESP32/ES

weixin_31869917的博客 333

实战避坑:在Ubuntu 22.04上配置NVIDIA GPU Direct RDMA时,必须搞清的P2P DMA与IOMMU那些事

本文深入探讨在Ubuntu 22.04上配置NVIDIA GPU Direct RDMA时P2P DMA与IOMMU的关键问题,解析PCIe架构中的地址转换、P2P DMA与标准DMA的区别,以及IOMMU对性能的影响。通过实战案例和调优建议,帮助用户避免常见配置陷阱,提升AI训练集群的数据传输效率。

weixin_33720078的博客 440

Instagram Stories用户超过2亿 推出新创意工具

4月14日消息,据venturebeat报道,Instagram发现,使用其类似Snapchat Stories功能的用户人数正持续增长。自推出Instagram Stories4个月后,每天使用这个功能的用户已经达到2亿人。 Instagram Stories用户超过2亿 推出新创意工具 尽管Instagram宣称有2亿人每天都在使用Instagram...

weixin_33769125的博客 208

云架构师进阶【SAP迁移方案设计】手把手教您玩转SAP上云

一,项目背景介绍 今天又接到了北京某制造企业SAP迁移的场景,先简单说明一下,好好的SAP在运行着为什么要做迁移这类大动作呢?众所周知SAP的ERP是企业的绝对核心系统,尤其对于制造业更是核心的系统,这样一套核心系统还是生产环境在迁移的过程中必然要面临比较大的挑战,如果有任何问题的话,都会对企业的绩效产生很大的影响。 经过跟客户沟通才得知,客户的SAP原来的系统是托管在运营商机房里,近期感染了勒索病毒,导致业务宕机,SAP应用服务器无法启动,仅有的数据库服务器可以运行。基于上述情况公司领导当机立断决定迅

bdsh818的博客 4220

30 名工程师撑起 9 亿用户社交帝国

云聊天也是采用端对端的加密,但有内置的备份,云聊天是为大多数用户设计的,与小众程序不同的是,云聊天用户,和 Telegram 上的加密聊天用户之间的流量是混合的,两种情况的加密方式相同,只是在云聊天中我们的服务器可以访问加密秘钥,这样用户使用加密聊天的事实不会被暴露。后来,当然也是看到了 Facebook 的日渐流行,萌生了创建一个俄罗斯社交网络的想法,并将其付诸行动,基于 spbgu.ru 扩展,将新创建的项目命名为 VKontakte,简称 VK,在俄语中有“保持联系”的意思。CIS 前 20 名。

hxsln11的博客 1564

从零开始:使用Mask2Former训练你的专属图像分割数据集

本文详细介绍了如何使用Mask2Former训练自定义图像分割数据集,从环境配置、数据集准备到模型训练与优化。通过实战技巧和问题排查指南,帮助开发者高效完成从零开始的图像分割任务,特别适合需要处理自定义数据集的AI研究人员和工程师。

weixin_30566063的博客 640

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 285

日600亿消息,月4.65亿用户——WhatsApp的Erlang世界

【编者按】在之前我们有分享过HighScalability创始人Tod Hoff总结的WhatsApp早期架构,其中包括了大量的Erlang优化来支撑单服务器200万并发连接,以及如何支撑所有类型的手机并提供一个完美的用户体验。然而时过境迁,两年后WhatsApp又是如何支撑10倍于之前的流量,以及应用的飞速扩展,这里我们一起看Tod带来的总结。以下为译文: 两年内的飞跃 天价应用当下的规

Tony_Wong的专栏 948

基于FLUENT的圆柱绕流数值模拟与流场优化策略

本文详细介绍了基于FLUENT的圆柱绕流数值模拟方法与流场优化策略。从基础概念、建模技巧到湍流模型选择,全面解析了圆柱绕流模拟的关键技术,并提供了实用的网格划分和参数设置建议。通过具体案例展示了流动控制方法和优化流程,帮助工程师有效降低阻力系数,提升流场性能。

f6g7h8i9j的博客 703

我把AI接上了Figma、WhatsApp、浏览器……然后它开始自己动起来了!

📎 地址:github.com/supabase-community/supabase-mcp(⭐1.2k)📎 地址:github.com/figma-plugin-helper/figma-mcp(⭐2.9k)📎 地址:github.com/github/github-mcp-server(⭐11.3k)📎 地址:github.com/firecrawl/firecrawl-mcp(⭐2.5k)📎 地址:github.com/tadata-dev/fastapi-mcp(⭐2.5k)

前端达人 1459

5、Raspberry Pi CPU架构与多线程编程详解

本文详细介绍了Raspberry Pi的CPU架构(包括ARMv6Z、ARMv7-A和ARMv8-A),通过/proc/cpuinfo解析硬件信息,并深入探讨了多线程编程的核心技术。内容涵盖pthread库的使用,如线程创建、属性设置、等待与分离、线程同步机制(互斥锁),以及实际应用场景如多媒体处理和网络服务。同时强调了线程安全、死锁预防和资源管理等关键注意事项,帮助开发者在Raspberry Pi上构建高效稳定的多线程应用。

sre5engineer的博客 93

【35】软考软件设计师——设计模式代码填空(C++版)满分精讲|第5/6题二选一必考

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第35篇,聚焦下午选做题**第5/6题C++版设计模式代码填空**,与上一篇Java版形成双子配套,单题分值稳定12~15分。全文超4000字深度拆解C++独有核心考点:虚函数/纯虚函数、构造与析构函数规范、继承权限、模板类编程在设计模式中的应用;精讲单例、工厂、策略、观察者、适配器五大高频模式的C++专属代码写法,标注所有填空核心点位、语法陷阱、内存安全规范

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 543

必看:一组WhatsApp2023年数据合集,助你深入洞察WS营销

从为小企业主服务的WhatsApp Business,到WhatsApp Business API/Cloud API,再到WhatsApp 支付、WhatsApp Channels、WhatsApp Flows等诸多产品服务功能,WhatsApp在海外打造了另一个“微信”生态体系。对于WhatsApp运营布局,客观数据能为企业提供多方面的依据和判断。通过个人号账号矩阵,企业可以进行去中心化的营销+运营,完成从获客到运营到转化到复购的交易全流程体系,通过社交销售模式构建有价值的WhatsApp营销体系。

SocialEpoch的博客 1035

【24E】SWT6652 wifi驱动加载失败问题分析及解决方案

修改驱动配置Kconfig。是由于内存分配失败导致。

wgl307293845的博客 219

Clawdbot汉化版效果展示:WhatsApp中AI将用户拍摄的电路板照片→识别元器件并查规格书

本文介绍了如何在星图GPU平台上自动化部署Clawdbot 汉化版 增加企业微信入口镜像,实现电路板图像的实时元器件识别与规格书检索。工程师通过WhatsApp发送手机实拍电路板照片,3秒内即可获取精准型号、参数、官方文档链接及国产替代建议,显著提升产线巡检与硬件排障效率。

weixin_42348783的博客 737

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

把 AI 装进 WhatsApp?Clawdbot:你的私人数字管家,不再寄人篱下

你是否厌倦了每次想用 AI 都得打开浏览器?是否梦想过像《钢铁侠》里的贾维斯一样,随时随地通过一句语音指令,就能让 AI 帮你查资料、跑代码、甚至管理家里的服务器?今天介绍的 Clawdbot,可能就是你离这个梦想最近的一次。

wdracky的专栏 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何使用wa-tunnel并通过Whatsapp隧道TCP流量

wa-tunnel是一款功能强大的TCP数据传输工具,在该工具的帮助下,广大研究人员可以在两个Whatsapp账号之间传输TCP数据。该工具有很多的使用场景,并使用项目构建功能。本质上来说,它是一个基于WS的多设备whatsapp库,因此可以同时也可以在Android设备上使用(需要使用Termux)。

2401_85026116的博客 1248

IEEE Spectrum 2017 年度流行编程语言发布;13 亿,Facebook 与 WhatsApp 创始人昂贵的分手...

(点击上方蓝字,快速关注我们)转自:开源中国、solidot、cnBeta、腾讯科技等0、IEEE Spectrum:2017 年度流行编程语言发布IEEE Spectr...

redditnote的博客 174

WhatsApp背后的小众编程语言:Erlang

原文地址:http://www.ithome.com/html/it/76809.htm 只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang——一种诞生于上世纪80年代的编程语言,终于在此时走到了聚光灯下。 但面对很多试图替代它的编程语言,Erlang有自己的将来吗? Erlang是25年前由瑞典电信

duhaomin的专栏 2436
上一篇: 黑帽大会:黑客把入侵汽车当兴趣
下一篇: Why there are a lot of technical personnel is not willing to write a blog?--为什么有很多技术人员不愿写博客?
Footloose_
博客等级 码龄10年 254粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值