默认
打赏 发表评论 16
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
阅读(112964) | 评论(16 收藏4 淘帖3 2
微信扫一扫关注!

本文由腾讯官方知乎账号发布和分享,原文知乎标题:“把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?”。


1、引言


知乎上有一个非常热门的问题:“把 13 亿中国人民都拉到一个微信群里在技术上能实现吗?”(见下图)

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_aaa.jpg

听到这个问题,全厂的人都炸了。要知道一个微信群最多只能有500人啊,QQ群也只有2000而已。当你有机会加入一个2000人QQ群的时候,你就已经感受到“信息爆炸”的可怕……

13亿人的微信群?Are you sure?

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_timg.gif

然鹅,鹅厂的工程师居然有人跳出来认认真真地做了回答。喏,就是下面这位开发小哥哥,他给出了一个知乎万赞的回答,请好好欣赏他的灵魂作画!

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_1.jpg

先说结论:也许可以实现,但你会什么都看不见。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_2.jpg

2、作为理科男,我们来认真的分析一下


根据2017年《微信数据报告》的公开数据:2017年9月,微信日均登陆9.02亿人,日均发送消息380亿次

► 这意味着平均每人每天发送信息42条,如果全国人民(对了,现在全国人口已经接近14亿)在同一个群里说话,这个群每天出现的信息就高达:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_3.jpg

► 这么多信息仅仅是匀速发送的话,考虑到大家的睡眠,睡觉的8小时不算,那么手机里每秒要接收的信息就是:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_4.jpg

哇塞,每秒超过100万条啊!目前主频最高的手机CPU之一,高通骁龙845有2.8GHz的处理能力,一共是8核。

► 如不计算安卓系统、显示刷新、网络IO等CPU操作的话,每条信息能分配到的计算能力是:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_5.jpg

这是什么概念?全球第一款微处理器是1971年英特尔推出的Intel 4004,这个老古董的主频也有108KHz啊。所以21.9KHz就是啥也干不了。

幸好IT界有个摩尔定律:每18个月CPU性能就能翻倍(或者价钱是一半)。虽然现有科技已经很难让主频提升(某牙膏厂拼命挤也只有5Ghz)。

► 但假设我们使用了黑科技提升主频。等到了2025摩尔定律失效时,我们的手机CPU主频应该达到:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_6.jpg

► 看起来不错嘛,不过每条消息能得到的计算能力将达到:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_7.jpg

呵呵,依然没有达到Intel 4004的水平,所以结果就是你等了7年,还是进不了这个全国群抢一个红包。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_8.jpg

好吧,咱们让手机接入一个给力点的电脑, 比如说曾经全球超算第一名的太湖之光[参考5],用它的1千万个CPU核心来帮忙处理这个宇宙第一大微信群。算力的问题算是有了着落。

我们假设平均每条消息有10个汉字,这大概相当于30 byte,算上应用层会加上一定的控制字符,再加上TCP/IP网络层的数据消耗大概是74 byte,取个整,平均每条消息有100 byte。

► 而每个byte 相当于8个bit,所以这时每秒需要的网络带宽大约是:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_9.jpg

这时千万不要有人发红包,否则需要的带宽就更大了。

理论上,4G网络能支持1000Mbps,但别忘了,是全国人民在同一个群里,而你周围的人也需要同样的带宽,这使得你附近的基站不堪重负,陷入瘫痪。

为了避免网络瘫痪导致你抢不到红包或者看群消息,你需要搬到一个周围没有人的基站,比如放暑假了全校只有你还没回家的时候。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_10.jpg

► 不过运营商的日子就不好过了,因为这一秒全国上下的流量就达到了惊人的:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_11.jpg

这相当于2017 4月份的全国移动数据总流量的65.7%,同时意味着每18秒就能用完全国一年的流量 。运营商瑟瑟发抖.gif

如果把1.146Ebit数据用2TByte 3.5英寸硬盘(20mm高)装起来,然后叠起来,有1433.25m,相比之下,全球最高楼——迪拜的哈利法塔只有区区828m。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_12.jpg

当然,如果确实有需要,我相信电信运营商们肯定砸下重金为你建设全世界最大的宽带网络。

不过,接下来该花钱的就不是运营商——而是腾讯了。

为了处理这1.146Ebps 的流量, 腾讯需要准备11466万套交换机和服务器。

► 目前一台大厂4口万兆交换机售价大约是4000元,一台便宜带万兆口的服务器则大概需要10000元,这两项加起来的费用是:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_13.jpg

呃,仅仅这两项就相当于深圳2014年全年的GDP。这里还不包括网线、电线、服务器机架、机房托管、电费、运行支出……

► 况且,这么多设备的存放也是个问题。一台带万兆(10Gbps)口的2U服务器有88.9mm高,这样叠起来就有:
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_14.jpg

这差不多是中国到美国的飞机航线距离啊,用来修铁路也是够够的了。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_15.jpg

好了,有了这么多设备加持,这下你终于可以愉快地进了群。

但你惊讶地发现,屏幕上除了白色,什么都没有——这是因为你的眼睛没办法接收这么快的数据!

人眼的视觉暂留时间是100-400毫秒,而我们这个群每秒钟就要显示102万条信息,每条消息停留的时间只有大概0.0001毫秒。相比之下,电影、电视都有41毫秒。

因此你还没来得及看清消息,它就已经消失了,最后只留下一团白色的色块在屏幕的正中央。

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?_16.jpg

我的手机着火了,能不能来一下……

附录1:有关QQ、微信的技术故事


技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail
QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年
闲话即时通讯:腾讯的成长史本质就是一部QQ成长史
2017微信数据报告:日活跃用户达9亿、日发消息380亿条
腾讯开发微信花了多少钱?技术难度真这么大?难在哪?
技术往事:创业初期的腾讯——16年前的冬天,谁动了马化腾的代码
技术往事:史上最全QQ图标变迁过程,追寻IM巨人的演进历史
技术往事:“QQ群”和“微信红包”是怎么来的?
开发往事:深度讲述2010到2015,微信一路风雨的背后
开发往事:微信千年不变的那张闪屏图片的由来
开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)
一个微信实习生自述:我眼中的微信开发团队
首次揭秘:QQ实时视频聊天背后的神秘组织
为什么说即时通讯社交APP创业就是一个坑?
微信七年回顾:历经多少质疑和差评,才配拥有今天的强大
前创始团队成员分享:盘点微信的前世今生——微信成功的必然和偶然
即时通讯创业必读:解密微信的产品定位、创新思维、设计法则等
QQ的成功,远没有你想象的那么顺利和轻松
QQ现状深度剖析:你还认为QQ已经被微信打败了吗?
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
>> 更多同类文章 ……

附录2:更多即时通讯/社交产品的实践总结、感悟分享


技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail
QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年
闲话即时通讯:腾讯的成长史本质就是一部QQ成长史
腾讯开发微信花了多少钱?技术难度真这么大?难在哪?
技术往事:史上最全QQ图标变迁过程,追寻IM巨人的演进历史
开发往事:深度讲述2010到2015,微信一路风雨的背后
开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)
微信七年回顾:历经多少质疑和差评,才配拥有今天的强大
前创始团队成员分享:盘点微信的前世今生——微信成功的必然和偶然
QQ的成功,远没有你想象的那么顺利和轻松
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
QQ和微信止步不前,意味着即时通讯社交应用创业的第2春已来?
那些年微信开发过的鸡肋功能,及其带给我们的思考
为什么说即时通讯社交APP创业就是一个坑?
即时通讯创业必读:解密微信的产品定位、创新思维、设计法则等
老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?
盘点和反思在微信的阴影下艰难求生的移动端IM应用
QQ现状深度剖析:你还认为QQ已经被微信打败了吗?
那些年微信开发过的鸡肋功能,及其带给我们的思考
渐行渐远的人人网:十年亲历者的互联网社交产品复盘和反思
>> 更多同类文章 ……

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:IM群聊 微信
上一篇:新手入门:零基础理解大型分布式架构的演进历史、技术原理、最佳实践下一篇:一分钟理解 HTTPS 到底解决了什么问题

本帖已收录至以下技术专辑

推荐方案
评论 16
{:2_38:我的三星又爆炸了
引用:汤靖咚 发表于 2018-10-23 15:17
{:2_38:我的三星又爆炸了

你不是买手机,是买了个可以防身的炸弹。。。 3星可以转行卖军 huo了
脑洞大开
引用:周清 发表于 2018-11-19 17:51
脑洞大开

何止有洞,简直要穿孔了
这个技术也是很强大了,真要做的话还是要做的大
签名: 自由职业自由交战
引用:bailiht 发表于 2018-12-04 20:08
这个技术也是很强大了,真要做的话还是要做的大

做了也没意义,纯属脑洞
挺有意思啊~
这个群应该改成,只能几个中央大佬可以发言。或者用户手动获取新消息,而不是自动推。
引用:heystc 发表于 2019-05-16 17:57
这个群应该改成,只能几个中央大佬可以发言。或者用户手动获取新消息,而不是自动推。

那就不是即时通讯了
学习
大开眼界
签名: DotNet NB
我也计算过,但没你计算的详细,感谢作者这么用心的整理,看着舒服。
我们做的自由群的解决方案是每40个人在群里的一个组,然后一段时间换组,也就是你同一时间只接受39个人的消息,然后查看历史消息除了你在的组的消息你不能看其他组的历史消息。同一个时间段只能接受同一组的消息。这样全国14亿人的聊天就可以划分为一个个小组的聊天,想单独撩骚那就需要另开一个单独的聊天room.不过群管理又是一个问题。
引用:完蛋 发表于 2020-11-20 14:41
我们做的自由群的解决方案是每40个人在群里的一个组,然后一段时间换组,也就是你同一时间只接受39个人的消 ...

别算了,不然头凉
理论上并不难吧, 这解答也挺糊弄人的. 另外这个项目和想法是有意义的:
         前提:  同时只能允许一部分在群里发言, 不然确实意义不大;
          实现起来肯定不会完全依靠中心服务器, 消息完全可以利用p2p进行中转, 理论上的消耗要比想象的要低得多;  
          意义当然, 比如选举投票, 公共演讲发言, 公共公告
         
引用:黄小斌 发表于 2024-09-20 17:12
理论上并不难吧, 这解答也挺糊弄人的. 另外这个项目和想法是有意义的:
         前提:  同时只能允许一部 ...

纯属脑洞,意义不大
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部