设计Whats App

Designing WhatsApp - High Scalability -

设计 WhatsApp

2022 年 1 月 3 日星期一上午 9:11

设计Whats App

 

这是Ankit Sirmorya的客座帖子。Ankit 担任机器学习主管/高级工程师。亚马逊的机器学习工程师,并领导了亚马逊生态系统的多项机器学习计划。Ankit 一直致力于应用机器学习来解决模棱两可的业务问题并改善客户体验。例如,他创建了一个平台,使用强化学习技术在亚马逊产品页面上试验不同的假设。目前,他在 Alexa Shopping 组织工作,正在开发基于机器学习的解决方案,以向客户发送个性化的重新订购提示,以改善他们的体验。

问题陈述

设计一个即时通讯平台,例如 WhatsApp 或 Signal,用户可以利用这些平台相互发送消息。该应用程序的一个重要方面是聊天消息不会永久存储在应用程序中。

小花絮: 一些聊天信使(例如 FB Messenger)会存储聊天消息,除非用户明确将其删除。但是,WhatsApp 等即时通讯工具不会将消息永久保存在其服务器上。

收集要求

即时通讯应用程序应满足以下要求。

  • 它应该能够支持用户之间的一对一对话。
  • 它应该能够向其他用户显示 Sent/Delivered/Read 确认。
  • 它应该能够提供有关用户上次活动时间的信息。
  • 它应该允许用户共享图像。
  • 它应该能够向其他用户发送推送通知。

容量规划

我们需要构建一个高度可扩展的平台,可以支持WhatsApp规模的流量。此外,在进行容量规划时,我们需要确保我们考虑到流量高峰的最坏情况。下面列出了我们可以用来估计应用程序(如 WhatsApp)容量的一些数字。

  • 每月应用用户数:10亿
  • 峰值流量每秒活跃用户数:650, 000
  • 峰值流量每秒消息数:4000 万

整个应用程序将由多个微服务组成,每个微服务执行特定任务。数据平面中处理聊天消息流量所需的服务器数量可以使用以下等式估算。

#

上一篇:微信小程序设置横竖屏


下一篇:12-14日记