乐趣区

关于java:如果把14亿中国人都拉到一个微信群

“最近,知乎上有一个十分热门的问题:“把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?”

先说论断:兴许能够实现,但你会什么都看不见。

依据 2017 年《微信数据报告》的公开数据 [参考 1]:2017 年 9 月,微信日均登陆 9.02 亿人,日均发送音讯 380 亿次。

这意味着均匀每人每天发送信息 42 条,如果全国人民(对了,当初全国人口曾经靠近 14 亿)在同一个群里谈话,这个群每天呈现的信息就高达:

这么多信息仅仅是匀速发送的话,思考到大家的睡眠,睡觉的 8 小时不算,那么手机里每秒要接管的信息就是:

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

如不计算安卓零碎、显示刷新、网络 IO 等 CPU 操作的话,每条信息能调配到的计算能力是:

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

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

但假如咱们应用了黑科技晋升主频。等到了 2025 摩尔定律生效时 [参考 4],咱们的手机 CPU 主频应该达到:

看起来不错嘛,不过每条音讯能失去的计算能力将达到:

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

好吧,咱们让手机接入一个给力点的电脑, 比如说寰球超算第一名的太湖之光,1 千万个 CPU 外围 [参考 5] 来帮忙解决这个宇宙第一大微信群。算力的问题总算有了着落。

咱们假如均匀每条音讯有 10 个汉字,这大略相当于 30 byte,算上应用层会加上肯定的控制字符,再加上 TCP/IP 网络层的数据耗费大略是 74 byte,取个整,均匀每条音讯有 100 byte,每个 byte 相当于 8 个 bit。

这时每秒须要的网络带宽大概是:

如果有人发红包,须要的带宽就更大了。

实践上,4G 网络能反对 1000 Mbps[参考 6],但别忘了,是全国人民在同一个群里,而你四周的人也须要同样的带宽,这使得你左近的基站不堪重负,陷入瘫痪。

为了防止网络瘫痪导致你抢不到红包或者看群音讯,你须要搬到一个四周没有人的基站,比方放暑假了全校只有你还没回家的时候。

不过运营商的日子就不好过了,因为这一秒全国上下的流量就达到了惊人的:

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

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

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

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

为了解决这 1.146 Ebps 的流量,腾讯须要筹备 11466 万套交换机和服务器。

目前一台大厂 4 口万兆交换机售价大概是 4000 元,一台便宜带万兆口的服务器则大略须要 10000 元,这两项加起来的费用是:

呃,仅仅这两项就相当于 深圳 2014 年全年的 GDP[参考 8]。

这里还不包含网线、电线、服务器机架、机房托管、电费、运行收入……

这么多设施的寄存也是个问题。一台带万兆(10Gbps)口的 2U 服务器有 88.9 mm 高,这样叠起来就有:

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

好了,有了这么多设施加持,这下你终于能够欢快地进了群。

但你诧异地发现,屏幕上除了红色,什么都没有——这是因为你的眼睛没方法接管这么快的数据!

人眼的视觉暂留工夫是 100-400 毫秒[参考 9],而咱们这个群每秒钟就要显示 102 万条信息,每条音讯停留的工夫只有大略 0.001 毫秒。相比之下,电影、电视都有 41 毫秒。

因而你还没来得及看清音讯,它就曾经隐没了,最初只留下一团红色的色块在屏幕的正地方。

小编精选了一些网友留言:
@大哥有柔情:

14 亿在一个群并不可怕。可怕的是,每逢节日群里都会让群主发红包!

@后知后觉:

曾经做到了,14 亿人拉到一个微信群,大家看到的都是新闻联播。

@bluecat:

简略的说,你的手机会马上解体,因为它承载不了一秒钟的信息量。

@三毛鱼

* 能够实现,不过要加几条限度:
①所有微信账号强制退出到这个微信群。
②微信群只能无限的几个人发言,其他人不能发言。
③微信群里只能在每天固定时间段发消息。
④其余微信群在固定工夫不能发消息,或者只能转发这个微信群的音讯。
这样就能够实现了,技术上没有难度。*

@程墨 Morgan

“拉”到一个群里没啥不难实现的,反正用户信息都在服务器上,建一个蕴含所有用户微信号的群也就是增加一个记录而已。

然而,这个群千万不要让任何人都能发言,就以我国人民的多样性,各种话唠、贴图狂人、广告狂人 …… 海量信息霎时就能够把服务器、运营商网络和你手机的电池击溃。

@世安学生

* 讲真,单从实践上来说目前的技术还是可行的,咳咳,我要装逼了。
看了别的答主的答复,说人、终端、传输、解决、存储、剖析等等各方面均有缺点或者短板,跟不上大批量的数据,其实集体感觉施行起来也还是有得搞的,只是老本和利润之间的关系罢了。
首先,得思考人的因素,多少多少亿的信息量对于某个特定个体来说价值有限靠近于 0,我集体基本不关注这些信息,因为获取信息的效率太低了。
这就导致了百分之九十九的人间接疏忽了这个群的存在,剩下的每天这个群里的音讯无非就是置顶布告,置顶新闻,红包和闲聊斗图,浏览布告和新闻。
思考到并发的问题,个别当初的服务器都能够做到,毕竟有大把的新闻 App 都能够做到;红包,做个算法随机调配吧,也别抢了,抢会重大影响体验,给十亿用户随机调配一段数据应该难度也不太大。
剩下的就是斗图闲聊,数据间接云存储在服务器端,剖析解决总结进去个中心思想每多少秒多少秒推送给个人用户一次,就差不多了,须要详细信息的上服务器检索,集体感觉对集体终端的压力也不会太大。
其次,传输,这是我感觉问题最小的一个环节,为什么呢?解决了集体终端的问题之后,集体的数据传输量并不大,现有的传输网络齐全能够满足。
服务器端的传输,要看这服务器怎么个建法,如果集中式解决和存储,就只能用百 G 专线,建个三五条齐全够了。
只不过相应的配套交换机路由器要建一套宏大的零碎进去。如果是分布式存储和解决,10G 的甚至 GE 的专线都够。这是传输。
第三,解决,如果非得把大批量的数据集中处理,就得建设一套国内最大甚至世界最大最简单的数据中心才可能承载这套零碎。
然而如果分布式解决的话,我置信当初的零碎也够用,毕竟现有的运算量曾经这么大了,而有这个群之后数据量也相对不会爆炸式增长。
第四,存储,解决的工作可能实现存储必定也不是问题,甚至能够将数据破碎后存储在集体终端上,将投资设施的矛盾转嫁到数据安全和治理上。
第五,数据分析,这一点才是重中之重,难点中的难点,如何无效的剖析提取如此大量数据中的有用信息并推送给特定的个人才是外围要害。
尽管当初技术还没有大面积商业化,但我置信这种技术是必定曾经有试用的甚至是曾经商用的存在了,只不过公众不太分明而已,毕竟这种货色认真想想还是有点恐怖的。
总之,如何实现这个零碎或者说建好这个群,无非就是做好需要与资源之间矛盾的转嫁,把存储需求量大与投资大之间的矛盾转嫁到数据安全与经营治理上,把大数据量传输分散化,把大量的数据进行剖析提取后定向推送,最外围的投资也就是整套智能无效的大数据分析系统。

(ಥ_ಥ)不过……话说这么搞的话不就是搞了个有 14 亿关注量的公众号嘛…d(ŐдŐ๑)好了,我装逼装完了,你们打的时候下手轻点,别拿砖头,别提 40 米青龙偃月大关刀 ……*

退出移动版