对于特定消息,支持向 WhatsApp 团队报告

admin 2025-08-13 阅读:26 评论:0
WhatsApp 是全球用户最多的 IM 系统之一,以很小的资源消耗支撑了超大规模的消息通信WhatsApp中文版,通过思考 WhatsApp 的架构选择,可以帮助我们了解怎样打造一个简单高效的消息系统。原文:WhatsApp System...

WhatsApp 是全球用户最多的 IM 系统之一,以很小的资源消耗支撑了超大规模的消息通信WhatsApp中文版,通过思考 WhatsApp 的架构选择,可以帮助我们了解怎样打造一个简单高效的消息系统。原文:WhatsApp System Architecture

今天我们要设计一个类似 WhatsApp 的即时通讯服务。

WhatsApp架构设计_类似WhatsApp的即时通讯服务设计_WhatsApp

Alexander Shatov@Unsplash

WhatsApp 是全世界大部分人几乎每天都在使用的应用程序,帮助我们以友好便捷的方式联系世界各地的朋友。常用的聊天系统一般分为两种类型,一种永久存储所有的信息,典型的是 Facebook Messenger,另一种只在消息无法直接送达的时候存储信息,一旦消息发送成功并收到确认,就会从系统中删除,典型的是 WhatsApp。

功能性需求

支持一对一的聊天

支持离线时发送消息

支持向包括离线用户在内的其他用户发送消息

支持聊天群组

支持最多 256 名参与者的 WhatsApp 群组

支持视频聊天

支持群组视频聊天

支持语音消息

支持图片、视频、文件分享

支持加密消息

视频最大 16MB,时长 90 秒到 3 分钟

支持已读回执

用户最后上线时间(基于不同的场景)

已发送、已送达、已阅读状态显式

分享文件大小不超过 100MB

支持播放 youtube、音频和视频

支持视频格式:MP4、3GP、MKV、AVI、MOV

一旦文件、视频、音频和图像超过大小限制,将显示状态通知

支持分享文件、视频、音频和图像到其他应用程序

支持在群组聊天中回复特定的消息

允许转发任何消息

允许拷贝消息

允许保存消息

允许将消息存档

允许我们私下回复消息

允许只发送和查看视频、图像一次,阅后即焚

允许删除消息

对于特定消息,支持向 WhatsApp 团队报告

支持通过 WhatsApp 拍照

支持当录音功能设置为全开后进行录音

支持访问手机联系人列表

支持共享位置(共享实时位置或共享当前位置)

支持通过 Facebook Messenger、邮件、微信、Telegram 等分享视频和文件

允许编辑、上传、删除用户配置文件

允许添加个人简介

允许绑定其他设备

允许更新状态

对于不同的场景WhatsApp网页版,允许定制设置

非功能性需求

超低时延

永远可用

没有延时

高可扩展性

一致性(在其他设备上显示的内容,将与其他设备同步)

系统架构组件

WhatsApp架构设计_类似WhatsApp的即时通讯服务设计_WhatsApp

类似WhatsApp的即时通讯服务设计_WhatsApp架构设计_WhatsApp

1. 用户数据库

WhatsApp架构设计_WhatsApp_类似WhatsApp的即时通讯服务设计

2. 用户服务(API)3. 映射数据库

WhatsApp_WhatsApp架构设计_类似WhatsApp的即时通讯服务设计

WhatsApp架构设计_类似WhatsApp的即时通讯服务设计_WhatsApp

类似WhatsApp的即时通讯服务设计_WhatsApp架构设计_WhatsApp

类似WhatsApp的即时通讯服务设计_WhatsApp架构设计_WhatsApp

在实际应用中,结构应该类似下图:

WhatsApp架构设计_类似WhatsApp的即时通讯服务设计_WhatsApp

每个聊天服务器都包含一个队列,队列可以处理过多的消息负载,并且在向不同用户发送任何消息时不会失败。

4. 群组服务

WhatsApp_类似WhatsApp的即时通讯服务设计_WhatsApp架构设计

5. 最后上线时间服务(Last Seen Service)

6. 消息存储服务器以及临时消息存储数据库7. 多媒体消息

聊天服务获取消息并找出消息的类型,一旦聊天服务检测到消息类型是多媒体格式后,就将其存储在 AWS S3 这样的对象存储服务中。这些多媒体文件的存储链接将被存储在 SQL 或 NoSQL 数据库中,并和用户详细信息相映射,可以使用 HTTP 协议来传递这些消息。

WhatsApp架构设计_类似WhatsApp的即时通讯服务设计_WhatsApp

WhatsApp 前端WhatsApp 后端系统概要设计

类似WhatsApp的即时通讯服务设计_WhatsApp_WhatsApp架构设计

参考资料

References:

WhatsApp System Architecture: https://medium.com/interviewnoodle/whatsapp-system-architecture-8df0250d572f

AWS S3: https://aws.amazon.com/s3/

你好,我是俞凡WhatsApp登录,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。微信公众号:DeepNoMind

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...