当前位置:   article > 正文

即时通讯系统架构设计-如何设计一款WhatsApp_即时通讯用户表设计

即时通讯用户表设计
本文译自tech takshila经OpenIM技术人员整理修订后发布。
写在前面

Open-IM是由前微信技术专家打造的开源的即时通讯组件。Open-IM包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成Open-IM组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

了解更多原创文章:

【OpenIM原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型

【OpenIM原创】C/C++调用golang函数,golang回调C/C++函数

【OpenIM原创】简单轻松入门 一文讲解WebRTC实现1对1音视频通信原理

【OpenIM扩展】OpenIM服务发现和负载均衡golang插件:gRPC接入etcdv3

【开源OpenIM】高性能、可伸缩、易扩展的即时通讯架构

如果您有兴趣可以在文章结尾了解到更多关于我们的信息,期待着与您的交流合作。

免责声明:这是设计WhatsApp等即时通讯系统的一种方法。然而,我们不能保证WhatsApp是以这种方式设计的。这是我们设计类似系统的想法。

问题陈述

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

*有趣的事实:*一些聊天信使(如FB Messenger)存储聊天信息,除非用户明确删除它。然而,像WhatsApp这样的即时通讯工具不会将消息永久保存在服务器上。

系统需求

instant messenger应用程序应满足以下要求。

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

容量规划

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

-每月应用程序上的用户数:10亿

-高峰流量时每秒的活动用户数:650000

-高峰流量时每秒的邮件数:4000万

整个应用程序将由几个微服务组成,每个微服务执行特定的任务。处理聊天信息流量的数据平面(网站管理员包括到分布式系统章节的链接)(我们称之为chat microservice)中所需的服务器数量可以使用以下等式进行估计。

*#*

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/849747
推荐阅读
相关标签