本文译自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)中所需的服务器数量可以使用以下等式进行估计。

*#*

即时通讯系统架构设计-如何设计一款WhatsApp相关推荐

  1. IM即时通讯系统架构

  2. bs模式Java web,基于BS模式的即时通讯系统的设计与实现(MyEclipse)

    基于BS模式的即时通讯系统的设计与实现(MyEclipse)(包含选题审批表,任务书,开题报告,中期检查表,毕业论文13000字,答辩记录,成绩评定册,源程序) 摘  要:即时通讯(Instant M ...

  3. IM即时通讯系统源码,即时通讯系统开发架构

    IM系统是一种即时通讯系统,可以让用户实时地发送和接收消息,支持文字.图片.语音等多种类型的消息.下面我们来介绍一下IM系统的架构设计和示例代码. IM系统的架构设计 IM系统的架构设计一般包括以下几 ...

  4. mysql 亿级高并发_亿级流量系统架构之如何设计每秒十万查询的高并发架构.md

    亿级流量系统架构之如何设计每秒十万查询的高并发架构 一.前情回顾 上篇文章(亿级流量系统架构之如何设计承载百亿流量的高性能架构)聊了一下系统架构中,百亿流量级别高并发写入场景下,如何承载这种高并发写入 ...

  5. Java生鲜电商平台-App系统架构开发与设计

    Java生鲜电商平台-App系统架构开发与设计 说明:阅读此文,你可以学习到以下的技术分享 1.Java生鲜电商平台-App架构设计经验谈:接口的设计 2.Java生鲜电商平台-App架构设计经验谈: ...

  6. 每秒10万并发 mysql_亿级流量系统架构之如何设计每秒十万查询的高并发架构

    一.前情回顾 上篇文章(亿级流量系统架构之如何设计承载百亿流量的高性能架构)聊了一下系统架构中,百亿流量级别高并发写入场景下,如何承载这种高并发写入,同时如何在高并发写入的背景下还能保证系统的超高性能 ...

  7. 企业即时通讯系统十大排名

    企业即时通讯系统十大排名 即时通信,简称IM(InstantMessaging),是在网络技术飞速发展过程中个人电脑上涌现的一项非常流行的通信技术.它是继电子邮件.Web技术之后的第三大互联网应用. ...

  8. 即时通讯系统的消息到达率如何保障

    消息传输的高可靠性在即时通讯系统中是最为基础.也是最核心的部分之一,同时也是衡量通讯系统的质量的重要指标.本文主要描述常见通讯系统模型的实现原理,分析影响消息传输可靠性的常见问题,并介绍有度即时通服务 ...

  9. 企业OA即时通讯系统解决方案

    企业OA即时通讯系统解决方案 一.部署企业即时通讯系统的意义--企业信息化建设 美国市场咨询公司Radicati Group日前公布了关于面向企业的即时通讯市场的调查结果,结果显示,北美85%的企业在 ...

  10. 为自己搭建一个分布式 IM(即时通讯) 系统

    前言 大家新年快乐! 新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容. 老读者应该还记得我在去年国庆节前分享过一篇<设计一个百万级的消息推 ...

最新文章

  1. mysql 数据泵_Oracle 数据泵详解
  2. 互动网计算机频道图书7日销售排行(05.20-05.26)
  3. xcode 编译静态库所要注意
  4. 视图需要创建类吗_建筑类的职称需要先评初级吗
  5. 客户端序列码生成_[基础]-序列化
  6. 【数据库】13种会导致索引失效语句写法
  7. leetcode329. 矩阵中的最长递增路径(dfs)
  8. 协方差意味着什么_“零”到底意味着什么?
  9. 为什么每个线程都需要创建一个栈?
  10. Same Tree - LeetCode
  11. 卡贴机变无锁教程_iphone卡贴机ICCID激活去掉卡贴变成无锁机的教程及原理
  12. 抠图软件哪个好用又免费?快来看看这几款软件
  13. java实现消息推送_java实现后台服务器消息推送
  14. android开发代码实现对Apk签名,如何对apk进行签名
  15. Unity3D游戏开发案例学习——Tanks!(基本完结)
  16. Linux下网络流量实时监控
  17. pandas玩转excel-> (2)如何利用pandas读取excel数据文件
  18. Blood闪烁特效制作
  19. python怎样创建列表_如何创建Python列表(list)和添加元素
  20. 蓝桥杯C/C++ AB组辅导课

热门文章

  1. BZOJ3420[POI2013]Triumphal archBZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案...
  2. i7 8700k 安装linux,Intel i7 8700K核显UHD620安装黑苹果仿冒HD620方法
  3. 光栅图形学-中点画线法
  4. lighttpd 之十二 网络请求服务响应流程
  5. Activity类的7个生命周期方法
  6. 文字不换行、显示省略号
  7. 深交所与庄家6次过招 中集认沽走下神坛幕后
  8. ENSP未找到base device,是否立即注册
  9. 程序员戴耳机是为了撩妹子?感觉好酷的样子~
  10. Shi-Tomasi特征点(角点)检测及追踪方法