把 14 億人拉到一個微信群,如何實現(xiàn)?
一行
讀完需要
速讀僅需 5 分鐘
大家好,我是一行
最近,知乎上有一個非常熱門的問題:“把 14 億中國人民都拉到一個微信群里在技術(shù)上能實現(xiàn)嗎?”

目前,微信群組成員人數(shù)上限為 500 人,把近 14 億中國人都拉到一個微信群,從技術(shù)的角度考慮現(xiàn)實嗎?需要多少臺服務(wù)器?
而且在一個 14 億人的群里,要怎樣搶紅包?手機(jī)會不會爆炸?
這個問題炸出了騰訊官方的回答:

1
? ?
先說結(jié)論:
也許可以實現(xiàn),但你會什么都看不見

根據(jù) 2017 年《微信數(shù)據(jù)報告》的公開數(shù)據(jù) [參考 1] :2017 年 9 月,微信日均登陸 9.02 億人,日均發(fā)送消息 380 億次。
這意味著平均每人每天發(fā)送信息 42 條,如果全國人民(對了,現(xiàn)在全國人口已經(jīng)接近 14 億)在同一個群里說話,這個群每天出現(xiàn)的信息就高達(dá):

這么多信息僅僅是勻速發(fā)送的話,考慮到大家的睡眠,睡覺的 8 小時不算,那么手機(jī)里每秒要接收的信息就是:

哇塞,每秒超過 100 萬條??!目前主頻最高的手機(jī) CPU 之一,高通驍龍 845 有 2.8GHz 的處理能力[參考 2] ,一共是 8 核。
如不計算安卓系統(tǒng)、顯示刷新、網(wǎng)絡(luò) IO 等 CPU 操作的話,每條信息能分配到的計算能力是:

這是什么概念?全球第一款微處理器是 1971 年英特爾推出的 Intel 4004[參考 3],這個老古董的主頻也有 108KHz 啊。所以 21.9KHz 就是啥也干不了。
幸好 IT 界有個摩爾定律:每 18 個月 CPU 性能就能翻倍(或者價錢是一半)。雖然現(xiàn)有科技已經(jīng)很難讓主頻提升(某牙膏廠拼命擠也只有 5 Ghz)。
但假設(shè)我們使用了黑科技提升主頻。等到了 2025 摩爾定律失效時[參考 4],我們的手機(jī) CPU 主頻應(yīng)該達(dá)到:

看起來不錯嘛,不過每條消息能得到的計算能力將達(dá)到:

呵呵,依然沒有達(dá)到 Intel 4004 的水平,所以結(jié)果就是你等了 7 年,還是進(jìn)不了這個全國群搶一個紅包。

好吧,咱們讓手機(jī)接入一個給力點的電腦, 比如說全球超算第一名的太湖之光,1 千萬個 CPU 核心 [參考 5] 來幫忙處理這個宇宙第一大微信群。算力的問題總算有了著落。
我們假設(shè)平均每條消息有 10 個漢字,這大概相當(dāng)于 30 byte,算上應(yīng)用層會加上一定的控制字符,再加上 TCP/IP 網(wǎng)絡(luò)層的數(shù)據(jù)消耗大概是 74 byte,取個整,平均每條消息有 100 byte,每個 byte 相當(dāng)于 8 個 bit。
這時每秒需要的網(wǎng)絡(luò)帶寬大約是:

如果有人發(fā)紅包,需要的帶寬就更大了。
理論上,4G 網(wǎng)絡(luò)能支持 1000 Mbps[參考 6],但別忘了,是全國人民在同一個群里,而你周圍的人也需要同樣的帶寬,這使得你附近的基站不堪重負(fù),陷入癱瘓。
為了避免網(wǎng)絡(luò)癱瘓導(dǎo)致你搶不到紅包或者看群消息,你需要搬到一個周圍沒有人的基站,比如放暑假了全校只有你還沒回家的時候。

不過運營商的日子就不好過了,因為這一秒全國上下的流量就達(dá)到了驚人的:

這相當(dāng)于 2017 年 4 月份的全國移動數(shù)據(jù)總流量的 65.7%[參考 7],意味著每 18 秒就能用完全國一年的流量。運營商瑟瑟發(fā)抖.gif
如果把 1.146 Ebit 數(shù)據(jù)用 2TByte 3.5 英寸硬盤(20 mm 高)裝起來,然后疊起來,有 1433.25 m,相比之下,全球最高樓——迪拜的哈里發(fā)塔只有區(qū)區(qū) 828m。

當(dāng)然,如果確實有需要,我相信電信運營商們肯定砸下重金為你建設(shè)全世界最大的寬帶網(wǎng)絡(luò)。
不過,接下來該花錢的就不是運營商——而是騰訊了。
為了處理這 1.146 Ebps 的流量, 騰訊需要準(zhǔn)備 11466 萬套交換機(jī)和服務(wù)器。
目前一臺大廠 4 口萬兆交換機(jī)售價大約是 4000 元,一臺便宜帶萬兆口的服務(wù)器則大概需要 10000 元,這兩項加起來的費用是:

呃,僅僅這兩項就相當(dāng)于 深圳 2014 年全年的 GDP[參考 8]。
這里還不包括網(wǎng)線、電線、服務(wù)器機(jī)架、機(jī)房托管、電費、運行支出……
這么多設(shè)備的存放也是個問題。一臺帶萬兆(10Gbps)口的 2U 服務(wù)器有 88.9 mm 高,這樣疊起來就有:

這差不多是中國到美國的飛機(jī)航線距離啊,用來修鐵路也是夠夠的了。

好了,有了這么多設(shè)備加持,這下你終于可以愉快地進(jìn)了群。
但你驚訝地發(fā)現(xiàn),屏幕上除了白色,什么都沒有——這是因為你的眼睛沒辦法接收這么快的數(shù)據(jù)!
人眼的視覺暫留時間是 100-400 毫秒[參考 9] ,而我們這個群每秒鐘就要顯示 102 萬條信息,每條消息停留的時間只有大概 0.001 毫秒。相比之下,電影、電視都有 41 毫秒。
因此你還沒來得及看清消息,它就已經(jīng)消失了,最后只留下一團(tuán)白色的色塊在屏幕的正中央。

2
? ?
小編精選了一些網(wǎng)友留言:
@大哥有柔情:
14 億在一個群并不可怕??膳碌氖牵糠旯?jié)日群里都會讓群主發(fā)紅包!
@后知后覺:
已經(jīng)做到了,14 億人拉到一個微信群,大家看到的都是新聞聯(lián)播。
@bluecat:
簡單的說,你的手機(jī)會馬上崩潰,因為它承載不了一秒鐘的信息量。
@三毛魚
可以實現(xiàn),不過要加幾條限制:
①所有微信賬號強(qiáng)制加入到這個微信群。
②微信群只能有限的幾個人發(fā)言,其他人不能發(fā)言。
③微信群里只能在每天固定時間段發(fā)消息。
④其他微信群在固定時間不能發(fā)消息,或者只能轉(zhuǎn)發(fā)這個微信群的消息。
這樣就可以實現(xiàn)了,技術(shù)上沒有難度。

@程墨 Morgan
“拉”到一個群里沒啥不難實現(xiàn)的,反正用戶信息都在服務(wù)器上,建一個包含所有用戶微信號的群也就是添加一個記錄而已。
但是,這個群千萬不要讓任何人都能發(fā)言,就以我國人民的多樣性,各種話嘮、貼圖狂人、廣告狂人......海量信息瞬間就可以把服務(wù)器、運營商網(wǎng)絡(luò)和你手機(jī)的電池?fù)魸ⅰ?/span>
@世安先生
講真,單從理論上來說目前的技術(shù)還是可行的,咳咳,我要裝逼了。
看了別的答主的回答,說人、終端、傳輸、處理、存儲、分析等等各方面均有缺陷或者短板,跟不上大批量的數(shù)據(jù),其實個人覺得實施起來也還是有得搞的,只是成本和利潤之間的關(guān)系罷了。
首先,得考慮人的因素,多少多少億的信息量對于某個特定個體來說價值無限接近于 0,我個人根本不關(guān)注這些信息,因為獲取信息的效率太低了。
這就導(dǎo)致了百分之九十九的人直接忽略了這個群的存在,剩下的每天這個群里的消息無非就是置頂公告,置頂新聞,紅包和閑聊斗圖,瀏覽公告和新聞。
考慮到并發(fā)的問題,一般現(xiàn)在的服務(wù)器都可以做到,畢竟有大把的新聞 App 都可以做到;紅包,做個算法隨機(jī)分配吧,也別搶了,搶會嚴(yán)重影響體驗,給十億用戶隨機(jī)分配一段數(shù)據(jù)應(yīng)該難度也不太大。
剩下的就是斗圖閑聊,數(shù)據(jù)直接云存儲在服務(wù)器端,分析處理總結(jié)出來個中心思想每多少秒多少秒推送給個人用戶一次,就差不多了,需要詳細(xì)信息的上服務(wù)器檢索,個人覺得對個人終端的壓力也不會太大。
其次,傳輸,這是我覺得問題最小的一個環(huán)節(jié),為什么呢?解決了個人終端的問題之后,個人的數(shù)據(jù)傳輸量并不大,現(xiàn)有的傳輸網(wǎng)絡(luò)完全可以滿足。
服務(wù)器端的傳輸,要看這服務(wù)器怎么個建法,如果集中式處理和存儲,就只能用百 G 專線,建個三五條完全夠了。
只不過相應(yīng)的配套交換機(jī)路由器要建一套龐大的系統(tǒng)出來。如果是分布式存儲和處理,10G 的甚至 GE 的專線都夠。這是傳輸。
第三,處理,如果非得把大批量的數(shù)據(jù)集中處理,就得建設(shè)一套國內(nèi)最大甚至世界最大最復(fù)雜的數(shù)據(jù)中心才能夠承載這套系統(tǒng)。
但是如果分布式處理的話,我相信現(xiàn)在的系統(tǒng)也夠用,畢竟現(xiàn)有的運算量已經(jīng)這么大了,而有這個群之后數(shù)據(jù)量也絕對不會爆炸式增長。
第四,存儲,處理的工作能夠完成存儲肯定也不是問題,甚至可以將數(shù)據(jù)破碎后存儲在個人終端上,將投資設(shè)備的矛盾轉(zhuǎn)嫁到數(shù)據(jù)安全和管理上。
第五,數(shù)據(jù)分析,這一點才是重中之重,難點中的難點,如何有效的分析提取如此大量數(shù)據(jù)中的有用信息并推送給特定的個人才是核心關(guān)鍵。
雖然現(xiàn)在技術(shù)還沒有大面積商業(yè)化,但我相信這種技術(shù)是肯定已經(jīng)有試用的甚至是已經(jīng)商用的存在了,只不過公眾不太清楚而已,畢竟這種東西仔細(xì)想想還是有點恐怖的。
總之,如何實現(xiàn)這個系統(tǒng)或者說建好這個群,無非就是做好需求與資源之間矛盾的轉(zhuǎn)嫁,把存儲需求量大與投資大之間的矛盾轉(zhuǎn)嫁到數(shù)據(jù)安全與運營管理上,把大數(shù)據(jù)量傳輸分散化,把大量的數(shù)據(jù)進(jìn)行分析提取后定向推送,最核心的投資也就是整套智能有效的大數(shù)據(jù)分析系統(tǒng)。

(?_?)不過……話說這么搞的話不就是搞了個有 14 億關(guān)注量的公眾號嘛…d(?д??)好了,我裝逼裝完了,你們打的時候下手輕點,別拿磚頭,別提 40 米青龍偃月大關(guān)刀......
參考鏈接

推薦閱讀
(點擊標(biāo)題可跳轉(zhuǎn)閱讀)
每天增加一個奇怪的知識

