<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jack Jiang

    我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
    posts - 494, comments - 13, trackbacks - 0, articles - 1

    1、前言

    微信——騰訊戰(zhàn)略級(jí)產(chǎn)品,創(chuàng)造移動(dòng)互聯(lián)網(wǎng)增速記錄,10個(gè)月5000萬(wàn)手機(jī)用戶(hù),433天之內(nèi)完成用戶(hù)數(shù)從零到一億的增長(zhǎng)過(guò)程,千萬(wàn)級(jí)用戶(hù)同時(shí)在線(xiàn),搖一搖每天次數(shù)過(guò)億...

    在技術(shù)架構(gòu)上,微信是如何做到的?日前,在騰訊大講堂在中山大學(xué)校園宣講活動(dòng)上,騰訊廣研助理總經(jīng)理、微信技術(shù)總監(jiān)周顥在兩小時(shí)的演講中揭開(kāi)了微信背后的秘密。

    周顥把微信的成功歸結(jié)于騰訊式的“三位一體”策略:即產(chǎn)品精準(zhǔn)、項(xiàng)目敏捷、技術(shù)支撐。微信的成功是在三個(gè)方面的結(jié)合比較好,能夠超出絕大多數(shù)同行或?qū)κ郑沟梦⑿抛叩奖容^前的位置。所謂產(chǎn)品精準(zhǔn),通俗的講就是在恰當(dāng)?shù)臅r(shí)機(jī)做了恰當(dāng)?shù)氖拢瞥隽酥亓考?jí)功能,在合適的時(shí)間以最符合大家需求的方式推出去。他認(rèn)為在整個(gè)微信的成功中,產(chǎn)品精準(zhǔn)占了很大一部分權(quán)重。

    技術(shù)交流:

    2、相關(guān)鏈接

    講稿下載:http://www.52im.net/thread-199-1-1.html(演講PPT)

    如何解讀:如何解讀《微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡(jiǎn)》

    3、前于周顥

    周顥

    2001 年畢業(yè)于華南理工大學(xué),計(jì)算機(jī)專(zhuān)業(yè)碩士。

    2005 年加入騰訊廣州研發(fā)部,歷任 QQ 郵箱架構(gòu)師,

    廣研技術(shù)總監(jiān),T4 技術(shù)專(zhuān)家,微信中心助理總經(jīng)理。

    4、微信的歷程

    5、敏捷是一種態(tài)度:勇于試錯(cuò)

    微信研發(fā)團(tuán)隊(duì)里鼓勵(lì)一種試錯(cuò)的信仰:他們堅(jiān)信,在互聯(lián)網(wǎng)開(kāi)發(fā)里,如果能夠有一個(gè)團(tuán)隊(duì)在更短的時(shí)間內(nèi)嘗試了更多機(jī)會(huì)(并能改進(jìn)過(guò)來(lái)),就能有(更多的)機(jī)會(huì)勝出。

    敏捷是一種態(tài)度,在軟件開(kāi)發(fā)過(guò)程中,項(xiàng)目管理者都會(huì)非常忌諱“變更”這個(gè)詞,但是在微信的項(xiàng)目運(yùn)作中是不可以的。因?yàn)槲⑿疟仨氁萑陶f(shuō)哪怕在發(fā)布前的十分鐘,也要允許他變更。這是非常大的挑戰(zhàn),因?yàn)榇蚱屏怂袀鹘y(tǒng)項(xiàng)目開(kāi)發(fā)的常識(shí)。所有人都說(shuō)不可能做到的,但微信做到了。研發(fā)團(tuán)隊(duì)所做的一切都是要給產(chǎn)品決策者有最大的自由度,而這個(gè)決策正是微信能夠勝出的關(guān)鍵。

    6、懸崖邊的跳舞:海量系統(tǒng)上的敏捷不同以往

    敏捷有很多困境,如果做一個(gè)單機(jī)版程序,是可以做到很敏捷的,但是騰訊正在運(yùn)作的是一個(gè)海量系統(tǒng),有千萬(wàn)級(jí)用戶(hù)同時(shí)在線(xiàn),在一個(gè)單獨(dú)的功能上每天有百億級(jí)的訪(fǎng)問(wèn),同時(shí)還要保證99.95%的可用性。

    在海量系統(tǒng)上應(yīng)對(duì)項(xiàng)目開(kāi)發(fā)會(huì)有很?chē)?yán)謹(jǐn)?shù)囊?guī)范,都說(shuō)要盡可能少的變化,因?yàn)?0%-95%的錯(cuò)誤都是在變更中產(chǎn)生的,如果系統(tǒng)一直不變更會(huì)獲得非常高的穩(wěn)定度,但是微信就是要在懸崖邊跳舞。微信的研發(fā)團(tuán)隊(duì)要做一些事情,讓敏捷開(kāi)發(fā)變得更簡(jiǎn)單。

    如何做到這一切?周顥認(rèn)為,首先,必須建立起一種狂熱的技術(shù)信念,就是一定是可以做到的。然后,需要用一些穩(wěn)固的技術(shù)(理念)來(lái)支撐,例如大系統(tǒng)小做、讓一切可擴(kuò)展、必須有基礎(chǔ)組件、輕松上線(xiàn)(灰度、灰度、再灰度;精細(xì)監(jiān)控;迅速響應(yīng))... 等等來(lái)支撐。

    7、大系統(tǒng)小做

    當(dāng)設(shè)計(jì)龐大系統(tǒng)的時(shí)候,應(yīng)該盡量分割成更小的顆粒,使得項(xiàng)目之間的影響是最小的。僅僅把模塊變得更為清晰,這在海量系統(tǒng)設(shè)計(jì)開(kāi)發(fā)中是不夠的,還需要在物理環(huán)境上進(jìn)行分離部署,出現(xiàn)問(wèn)題的時(shí)候可以快速發(fā)現(xiàn),并且在最快的情況下解決掉。

    大系統(tǒng)小做,混搭模式:

    將不同的應(yīng)用邏輯物理分割獨(dú)立出來(lái),用戶(hù)注冊(cè)登錄、LBS邏輯、搖一搖邏輯、漂流瓶邏輯、消息邏輯獨(dú)立開(kāi)來(lái)。把關(guān)鍵的邏輯混搭在一起,當(dāng)所有的邏輯部署在同一個(gè)服務(wù)器上,確實(shí)也會(huì)帶來(lái)很大敏捷上的好處,因?yàn)椴恍枰~外的考慮部署和監(jiān)控的問(wèn)題。在整個(gè)微信的邏輯中,可能現(xiàn)在已經(jīng)有上百種不同的邏輯,因?yàn)闀?huì)在邏輯的分割上拆分成8-10種做分離部署。

    8、一切皆可擴(kuò)展

    在高穩(wěn)定度、高性能的系統(tǒng)中間,為了穩(wěn)定性能把它設(shè)計(jì)成不變化的系統(tǒng),但為了支持敏捷需要讓一切的東西都要變得可以擴(kuò)展。

    擴(kuò)展的關(guān)鍵點(diǎn)有兩塊:

    1)一個(gè)是網(wǎng)絡(luò)協(xié)議需要擴(kuò)展,當(dāng)要升級(jí)一個(gè)新功能的時(shí)候,會(huì)有一些比較大的困難,所以所有協(xié)議設(shè)計(jì)都比較向前兼容,但是向前兼容還是不夠的,因?yàn)榫W(wǎng)絡(luò)協(xié)議設(shè)計(jì)本身有非常多的功能也會(huì)有比較大的字段,相關(guān)的代碼可能會(huì)有數(shù)千行,這一塊不能通過(guò)手寫(xiě)方式完成。可以通過(guò)XML描述,再通過(guò)工具自動(dòng)生成所有的代碼,這是微信獲得快速開(kāi)發(fā)的一個(gè)重要的點(diǎn)。

    2)另外一塊就是在數(shù)據(jù)存儲(chǔ)方面是必須可擴(kuò)展的。在2005年絕大多數(shù)海量系統(tǒng)的設(shè)計(jì)都是采用固定字段的存儲(chǔ),但是在現(xiàn)代系統(tǒng)中會(huì)意識(shí)到這個(gè)問(wèn)題,會(huì)采用KV或者TLV的方式,微信也做了不同的設(shè)計(jì)。

    把復(fù)雜邏輯都固化下來(lái),成為基礎(chǔ)軟件。在微信后臺(tái)會(huì)有幾種不同的基礎(chǔ)組件。

    大致包括:

    • 1)Svrkit:Client/Server自動(dòng)代碼生成框架:10分鐘搭建內(nèi)部服務(wù)器
    • 2)LogicServer:邏輯容器:隨時(shí)添加新邏輯
    • 3)OssAgent:監(jiān)控/統(tǒng)計(jì)框架:所見(jiàn)即所得的監(jiān)控報(bào)表
    • 4)存儲(chǔ)組件:屏蔽容災(zāi)/擴(kuò)容等復(fù)雜問(wèn)題

    9、灰度、灰度、再灰度

    在變更后的部署方式上,微信在一些規(guī)則會(huì)限定不能一次把所有的邏輯變更上去,每一次變更一小點(diǎn)觀察到每一個(gè)環(huán)節(jié)沒(méi)有問(wèn)題的時(shí)候,才能布局到全網(wǎng)上去。微信后臺(tái)每一天可以支撐超過(guò)20個(gè)后臺(tái)變更,在業(yè)界來(lái)說(shuō),通常做到5個(gè)已經(jīng)是比較快了,但是微信可以做到快4倍。

    騰訊內(nèi)部的上線(xiàn)系統(tǒng):

    而所謂灰度發(fā)布,是指在黑與白之間,能夠平滑過(guò)渡的一種發(fā)布方式。AB test就是一種灰度發(fā)布方式,讓一部用戶(hù)繼續(xù)用A,一部分用戶(hù)開(kāi)始用B,如果用戶(hù)對(duì)B沒(méi)有什么反對(duì)意見(jiàn),那么逐步擴(kuò)大范圍,把所有用戶(hù)都遷移到B上面 來(lái)。灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時(shí)候就可以發(fā)現(xiàn)、調(diào)整問(wèn)題,以保證其影響度。(在騰訊,灰度發(fā)布是最常采用的發(fā)布方式之一)

    10、兵法云:古之所謂善戰(zhàn)者,勝于易勝者也

    常識(shí)上,解決一個(gè)復(fù)雜問(wèn)題的時(shí)候,會(huì)用高明的技巧解決復(fù)雜的問(wèn)題,這個(gè)不是微信團(tuán)隊(duì)的目標(biāo),他們追求的要做到讓所有問(wèn)題很自然和簡(jiǎn)單的方式解決掉。

    在周顥看來(lái),微信架構(gòu)的技術(shù)復(fù)雜點(diǎn)在四個(gè)要點(diǎn):協(xié)議、容災(zāi)、輕重、監(jiān)控。

    微信架構(gòu):

    • 1)協(xié)議:手機(jī)終端跟后臺(tái)服務(wù)器之間的交互協(xié)議,這個(gè)協(xié)議的設(shè)計(jì)是整個(gè)系統(tǒng)的骨架,在這一點(diǎn)做好設(shè)計(jì)可以使得系統(tǒng)的復(fù)雜度大大降低。
    • 2)容災(zāi):當(dāng)系統(tǒng)出現(xiàn)了若干服務(wù)器或若干支架(宕機(jī)的時(shí)候),仍然需要讓系統(tǒng)盡可能的提供正常的服務(wù)。
    • 3)輕重:如何在系統(tǒng)架構(gòu)中分布功能,在哪一個(gè)點(diǎn)實(shí)現(xiàn)哪一個(gè)功能,代表系統(tǒng)中間的功能配置。
    • 4)監(jiān)控:為系統(tǒng)提供一個(gè)智能儀表盤(pán)。

    在協(xié)議設(shè)計(jì)上,移動(dòng)互聯(lián)網(wǎng)和常規(guī)互聯(lián)網(wǎng)有很大的區(qū)別。首先有CMWAP和CMNET的不同,在中國(guó)現(xiàn)在有相當(dāng)多的手機(jī)用戶(hù)使用WMWAP連接,還有就是在線(xiàn)和離線(xiàn)的概念,當(dāng)QQ下線(xiàn)的時(shí)候叫離線(xiàn),當(dāng)你登錄的時(shí)候叫在線(xiàn)。但是在移動(dòng)互聯(lián)網(wǎng)這兩個(gè)概念比較模糊。從微信的設(shè)計(jì)中,不管在線(xiàn)還是離線(xiàn)系統(tǒng)表現(xiàn)都應(yīng)該是一致的。

    還有一個(gè)是連接不穩(wěn)定的問(wèn)題,由于手機(jī)信號(hào)強(qiáng)弱的變化,當(dāng)時(shí)信號(hào)很好,5秒鐘走到信號(hào)不好的地區(qū),連接就必須斷掉。這個(gè)中間帶來(lái)不穩(wěn)定的因素為協(xié)議設(shè)計(jì)帶來(lái)較大困難。

    此外就是資費(fèi)敏感的問(wèn)題,因?yàn)橐苿?dòng)互聯(lián)網(wǎng)是按照流量計(jì)費(fèi)的,這個(gè)計(jì)費(fèi)會(huì)使得在協(xié)議設(shè)計(jì)中如何最小化傳輸?shù)膯?wèn)題。

    最后就是高延遲的問(wèn)題。

    對(duì)此,業(yè)界標(biāo)準(zhǔn)的解決方案:Messaging And Presence Protocol:1)XMPP;2)SIP/SIMPLE。它的優(yōu)點(diǎn)是簡(jiǎn)單,大量開(kāi)源實(shí)現(xiàn)。而缺點(diǎn)同樣明顯:1)流量大:狀態(tài)初始化;2)消息不可靠。

    微信在系統(tǒng)中做了特殊設(shè)計(jì),叫SYNC協(xié)議,是參考Activesyec來(lái)實(shí)現(xiàn)的。特點(diǎn)首先是基于狀態(tài)同步的協(xié)議,假定說(shuō)收發(fā)消息本身是狀態(tài)同步的過(guò)程,假定終端和服務(wù)器狀態(tài)已經(jīng)被遲了,在服務(wù)器端收到最新的消息,當(dāng)客戶(hù)端、終端向服務(wù)器對(duì)接的時(shí)候,收取消息的過(guò)程實(shí)際上可以簡(jiǎn)單的歸納為狀態(tài)同步的過(guò)程,收消息以及收取你好友狀態(tài)更新都是相同的。在這樣的模式之下,我們會(huì)也許會(huì)把交互的模式統(tǒng)一化,只需要推送一個(gè)消息到達(dá)的通知就可以了,終端收到這個(gè)通知就來(lái)做消息的同步。在這樣的簡(jiǎn)化模式之下,安卓和塞班都可以得到統(tǒng)一。這樣的系統(tǒng)本身的實(shí)現(xiàn)是更為復(fù)雜的,但是獲得很多額外的好處。

    讓剩下系統(tǒng)實(shí)現(xiàn)的部分更加簡(jiǎn)單,簡(jiǎn)化了交互模式,狀態(tài)同步可以通過(guò)狀態(tài)同步的差值獲得最小的數(shù)據(jù)變更,通過(guò)增量的傳輸?shù)玫阶钚〉臄?shù)據(jù)傳輸量。通過(guò)這樣的協(xié)議設(shè)計(jì),微信可以確保消息是穩(wěn)定到達(dá)的,而且是按序到達(dá)。引用一句俗話(huà):比它炫的沒(méi)它簡(jiǎn)單,比它簡(jiǎn)單的沒(méi)它快,沒(méi)誰(shuí)比他更快,哪怕在GPRS下,微信也能把進(jìn)度條輕易推到底。

    11、追求完美設(shè)計(jì)的團(tuán)隊(duì)不能勝任海量服務(wù)

    在容災(zāi)之前面向最壞的思考,如果系統(tǒng)真的掛了,需要做一些事情,首先是防止雪崩,避免蝴蝶效應(yīng)。

    如果關(guān)注春節(jié)訂火車(chē)票就知道了,用戶(hù)的請(qǐng)求量會(huì)因?yàn)橄到y(tǒng)服務(wù)不了而不斷的重試,意味著發(fā)生雪崩的時(shí)候,系統(tǒng)可能會(huì)承載原先3-10倍的流量,使得所有的事情更加惡化。所以微信有很多“放雪”功能的設(shè)計(jì)。

    第二個(gè)詞是柔性可用,在任何的系統(tǒng)中不要追求完美設(shè)計(jì),追求完美設(shè)計(jì)的是團(tuán)隊(duì)是不能勝任海量服務(wù)的。如果在一個(gè)系統(tǒng)出現(xiàn)問(wèn)題的時(shí)候,這個(gè)系統(tǒng)就掛了,那么這是一個(gè)不好的設(shè)計(jì),最好的做法是提供0-1中間的選擇。

    舉一個(gè)例子:當(dāng)一個(gè)用戶(hù)向另外一個(gè)用戶(hù)發(fā)消息的時(shí)候,可能會(huì)通過(guò)一個(gè)垃圾信息過(guò)濾的檢測(cè),如果垃圾信息過(guò)濾這個(gè)模塊突然掛掉了,這個(gè)消息難道就不能達(dá)到了嗎?在這樣的情況下,要忽略掉這個(gè)錯(cuò)誤,使得消息正常達(dá)到對(duì)方。要精確定位出哪一個(gè)環(huán)節(jié)是最為重要的,把不是重要的錯(cuò)誤盡可能的忽略掉。當(dāng)不能做到完美的時(shí)候,盡可能為用戶(hù)提供服務(wù)。另外一個(gè)重要方面叫做“保護(hù)點(diǎn)前置”,最前的一個(gè)點(diǎn)就是終端,在手機(jī)終端上蘊(yùn)埋更多的保護(hù)點(diǎn),這樣會(huì)為用戶(hù)系統(tǒng)贏得更大的處理空間。如果終端具備這樣的能力,會(huì)獲得更大的反應(yīng)空間。

    周顥介紹了在微信上具體容災(zāi)設(shè)計(jì)的做法。在所有的容災(zāi)中存儲(chǔ)層的容災(zāi)是最難的,一個(gè)系統(tǒng)的設(shè)計(jì)分為三層:接入層、邏輯層、存儲(chǔ)層。接入層和邏輯層的容災(zāi)都有比較成熟的方案。邏輯層的容災(zāi)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,盡量不要有狀態(tài)的設(shè)計(jì),比如說(shuō)當(dāng)你做上一個(gè)請(qǐng)求的時(shí)候,會(huì)保持一些狀態(tài),要使得下一個(gè)請(qǐng)求發(fā)到下一個(gè)服務(wù)器。如果任何一個(gè)請(qǐng)求之間互相不關(guān)聯(lián)的話(huà),這個(gè)就是無(wú)狀態(tài)的設(shè)計(jì),只要做到這一點(diǎn)邏輯層的容災(zāi)可以隨意的切換。在回到存儲(chǔ)層本身的容災(zāi)設(shè)計(jì)上,相對(duì)來(lái)說(shuō)困難一些,但是微信研發(fā)團(tuán)隊(duì)采用了一些技巧,叫分而治之,分離業(yè)務(wù)場(chǎng)景,尋求簡(jiǎn)單的設(shè)計(jì),并不會(huì)尋求大而同一的解決方案,因?yàn)檫@樣會(huì)使得系統(tǒng)的復(fù)雜度大幅度上升,而微信會(huì)盡可能把產(chǎn)品拆細(xì),尋求簡(jiǎn)化的設(shè)計(jì)。

    首先是主備容災(zāi),這是最常見(jiàn)的方案。在有一些業(yè)務(wù)場(chǎng)景中是可以容忍最終一致性的,比如賬號(hào)系統(tǒng)的設(shè)計(jì),每天寫(xiě)入賬號(hào)系統(tǒng)的請(qǐng)求是非常少的,但是訪(fǎng)問(wèn)的請(qǐng)求非常多,這個(gè)差異可能會(huì)達(dá)到數(shù)萬(wàn)倍的規(guī)模,在這樣的場(chǎng)景下,微信會(huì)在賬號(hào)系統(tǒng)中采用簡(jiǎn)化的方案,也可以獲得比較大的穩(wěn)定度。

    SET模型+雙寫(xiě):

    第二種容災(zāi)的模式叫雙寫(xiě),兩臺(tái)Master的機(jī)器,當(dāng)一臺(tái)機(jī)故障的時(shí)候,另外一臺(tái)機(jī)還是可以接收到寫(xiě)請(qǐng)求,當(dāng)兩臺(tái)機(jī)交錯(cuò)啟動(dòng)的時(shí)候,會(huì)得到數(shù)據(jù)的丟失。但是有一些場(chǎng)景是可以容忍輕度數(shù)據(jù)丟失的,比如說(shuō)會(huì)有一個(gè)存儲(chǔ)專(zhuān)門(mén)記錄用戶(hù)終端的類(lèi)型,比如說(shuō)安卓還是塞班以及他們使用終端的微信版本是什么,這樣的數(shù)據(jù)是可以容忍輕度數(shù)據(jù)丟失的,因?yàn)榕紶栍幸恍﹣G失的話(huà),下一次訪(fǎng)問(wèn)會(huì)把這些數(shù)據(jù)帶上來(lái),會(huì)盡快的修復(fù)所有的數(shù)據(jù)。雙寫(xiě)也是非常簡(jiǎn)單的模式。

    微信的研發(fā)團(tuán)隊(duì)做了一個(gè)叫Simple Quorum的機(jī)制,在微信的后臺(tái)中,同步協(xié)議有一個(gè)很重要的基石叫序列發(fā)生器,這樣的一個(gè)序列發(fā)生器需要有極高的穩(wěn)定度。首先可以看到序列號(hào)有一個(gè)特點(diǎn)永遠(yuǎn)是遞增的,用遞增方式往前推進(jìn)的時(shí)候,最大的序列號(hào)就是最新的系列號(hào)。有一個(gè)畢業(yè)才加入廣研的畢業(yè)生想到一個(gè)絕佳的方案,按SET分布,從2G減到200K。

    12、前輕后重:功能點(diǎn)后移

    周顥還談到了輕重的概念。這個(gè)概念的提出主要是從終端本身的一些困境所帶來(lái)的。首先在終端上需要表現(xiàn)最多的一個(gè)產(chǎn)品的邏輯,邏輯非常復(fù)雜,變更的成本也非常高,當(dāng)需要修復(fù)的時(shí)候必須發(fā)布一個(gè)新版本,這個(gè)新版必須由自己下載才能完成,下載的成本非常高。在這樣的前提下,如果手機(jī)終端產(chǎn)生了任何變化的時(shí)候,如果這個(gè)變化有非常大的問(wèn)題就會(huì)有極大的困境,所以需要在每一個(gè)發(fā)布之前做一些充分的數(shù)據(jù),確保不會(huì)發(fā)生致命問(wèn)題。如果一旦出現(xiàn)致命問(wèn)題難以修復(fù),需要把關(guān)鍵的點(diǎn)從終端移到后臺(tái)實(shí)現(xiàn),把功能點(diǎn)后移,來(lái)充分發(fā)揮后臺(tái)快速變更的能力。

    接入優(yōu)化:從GSLB到IP重定向

    在接入層的優(yōu)化,速度很重要的因素,是不是能夠就近接入一個(gè)最優(yōu)的節(jié)點(diǎn),比如說(shuō)移動(dòng)用戶(hù)最好接入移動(dòng)的節(jié)點(diǎn),海外的用戶(hù)可能需要尋找更佳的路由,有的時(shí)候可能無(wú)法自動(dòng)做到這一點(diǎn),一點(diǎn)是在終端上做測(cè)速,微信會(huì)通過(guò)在后臺(tái)IP逆向的能力,通過(guò)后臺(tái)指揮微信終端聯(lián)網(wǎng)的能力,尋找最優(yōu)的接入點(diǎn)。上圖就是每分鐘收到同一項(xiàng)指令曲線(xiàn)的報(bào)表。

    如何解決“偷流量”的問(wèn)題——當(dāng)國(guó)內(nèi)類(lèi)微信類(lèi)產(chǎn)品發(fā)布的時(shí)候出現(xiàn)一個(gè)大的問(wèn)題就是“偷流量”,當(dāng)用戶(hù)在某一些邏輯下進(jìn)行一個(gè)死循環(huán),不斷訪(fǎng)問(wèn)某一些數(shù)據(jù),這樣的死循環(huán)是非常可怕的,如果在用戶(hù)不知覺(jué)的情況之下,可能會(huì)在一個(gè)小時(shí)之內(nèi)偷到數(shù)10兆甚至數(shù)百兆的流量。有非常多業(yè)內(nèi)的同行都需要花大量的精力解決這個(gè)問(wèn)題,微信研發(fā)團(tuán)隊(duì)用了非常強(qiáng)大的方式解決它。通過(guò)在后臺(tái)建立起嚴(yán)厲的監(jiān)控系統(tǒng),對(duì)每一個(gè)用戶(hù)的行為做一個(gè)監(jiān)控,當(dāng)發(fā)現(xiàn)異常的時(shí)候,后臺(tái)會(huì)給終端發(fā)出指令,使得微信終端在一段時(shí)間無(wú)法聯(lián)網(wǎng),但是可以保證用戶(hù)流量不會(huì)白白的使用掉。

    功能適配的例子——第一期微信版本發(fā)布的時(shí)候,當(dāng)時(shí)沒(méi)有群聊的功能,第二版發(fā)布的時(shí)候做了這個(gè)功能。當(dāng)時(shí)有兩個(gè)選擇,對(duì)于早期版本的用戶(hù),因?yàn)椴恢С秩毫模蜔o(wú)法享用到這個(gè)功能,但是微信希望提供更好的選擇,想讓早期不支持群聊的版本,也可以被拉到一個(gè)群里面收消息、發(fā)消息,通過(guò)后臺(tái)功能的適配也能做到這個(gè)事情。

    13、分而治之:把監(jiān)控嵌入基礎(chǔ)框架

    對(duì)于一個(gè)海量系統(tǒng)來(lái)說(shuō),一個(gè)精密的儀表盤(pán)非常重要。監(jiān)控是非常痛苦的,對(duì)于這樣一個(gè)系統(tǒng)來(lái)說(shuō),每小時(shí)會(huì)產(chǎn)生數(shù)百G的監(jiān)控日志。微信希望在1分鐘之內(nèi)監(jiān)控的數(shù)據(jù)就能夠顯示在報(bào)表上,因?yàn)橹挥羞@樣的精準(zhǔn)和實(shí)時(shí)度才能夠贏得處理故障的時(shí)間。微信會(huì)做關(guān)聯(lián)統(tǒng)計(jì),通過(guò)搖一搖加了好友,他們活躍度如何,過(guò)了一段時(shí)間他們的活躍度變化情況又是如何。這種需求是需要通過(guò)大量日志的關(guān)聯(lián)統(tǒng)計(jì)來(lái)獲得的。研發(fā)團(tuán)隊(duì)也花了一段時(shí)間來(lái)理解這個(gè)問(wèn)題,發(fā)現(xiàn)了中間一個(gè)重要的經(jīng)驗(yàn)叫做“魚(yú)和熊掌不能兼得”。

    為了讓監(jiān)控?cái)?shù)值更敏感,需要把監(jiān)控細(xì)化再細(xì)化,上面數(shù)據(jù)表示每一欄子系統(tǒng)的數(shù)據(jù),下面這個(gè)是按微信版本號(hào)來(lái)劃分的,這里的數(shù)據(jù)項(xiàng)是非常多。

    微信還需要采集一些異常的點(diǎn),如果有異常的話(huà)會(huì)發(fā)布緊急的版本,盡可能快的替換它。對(duì)收發(fā)消息延時(shí)做的監(jiān)控,比如說(shuō)0—1秒端到端的速度,會(huì)對(duì)不同的區(qū)段做一些統(tǒng)計(jì),當(dāng)某一個(gè)環(huán)節(jié)出現(xiàn)異常的時(shí)候,通常會(huì)在中間的延時(shí)上體現(xiàn)出來(lái)。有一個(gè)很重要的點(diǎn)叫自動(dòng)報(bào)警,現(xiàn)在有數(shù)千項(xiàng)的數(shù)據(jù),不可能每一項(xiàng)都靠人工去看的,必須要跟自動(dòng)報(bào)警相關(guān)聯(lián),微信有一些智能的算法,是不是在正常的范圍內(nèi),跟歷史的數(shù)值進(jìn)行對(duì)比,如果有異常的話(huà),會(huì)通過(guò)短信、郵件還有微信本身來(lái)發(fā)出報(bào)警信息。

    微信會(huì)把監(jiān)控嵌入到基礎(chǔ)框架里面去,因?yàn)椴⒉皇敲恳粋€(gè)人都會(huì)意識(shí)到在需要的地方嵌入一個(gè)監(jiān)控點(diǎn),所以在基礎(chǔ)框架本身內(nèi)置很重要的監(jiān)控點(diǎn),比如說(shuō)這個(gè)表上的欄目,非常多的欄目大概會(huì)有數(shù)百項(xiàng)的欄目,都不需要程序員自己去寫(xiě),當(dāng)用基礎(chǔ)組件搭建一個(gè)系統(tǒng)的時(shí)候,就可以直接觀測(cè)系統(tǒng)數(shù)據(jù)。

    14、未來(lái)的技術(shù)挑戰(zhàn)

    在談到微信未來(lái)的技術(shù)挑戰(zhàn)時(shí),周顥首先希望能夠讓微信成為可用性99.99%的系統(tǒng);設(shè)計(jì)出面向現(xiàn)在10倍容量的系統(tǒng)以及完全的IDC容災(zāi)。

    15、寫(xiě)在后面

    網(wǎng)上盛傳的凌晨?jī)牲c(diǎn),騰訊大廈那多層大片大片的燈光和樓下那長(zhǎng)長(zhǎng)的出租車(chē)隊(duì)伍說(shuō)明了一切。引用一句話(huà)做結(jié)尾:“可怕的不是微信,真正可怕的是,比你領(lǐng)先比你更有天賦的團(tuán)隊(duì)比你更努力”。

    附錄1:QQ、微信團(tuán)隊(duì)原創(chuàng)技術(shù)文章匯總

    微信朋友圈千億訪(fǎng)問(wèn)量背后的技術(shù)挑戰(zhàn)和實(shí)踐總結(jié)

    騰訊技術(shù)分享:騰訊是如何大幅降低帶寬和網(wǎng)絡(luò)流量的(圖片壓縮篇)

    騰訊技術(shù)分享:騰訊是如何大幅降低帶寬和網(wǎng)絡(luò)流量的(音視頻技術(shù)篇)

    IM全文檢索技術(shù)專(zhuān)題(二):微信移動(dòng)端的全文檢索多音字問(wèn)題解決方案

    騰訊技術(shù)分享:Android版手機(jī)QQ的緩存監(jiān)控與優(yōu)化實(shí)踐

    微信團(tuán)隊(duì)分享:iOS版微信的高性能通用key-value組件技術(shù)實(shí)踐

    微信團(tuán)隊(duì)分享:iOS版微信是如何防止特殊字符導(dǎo)致的炸群、APP崩潰的?

    騰訊技術(shù)分享:Android手Q的線(xiàn)程死鎖監(jiān)控系統(tǒng)技術(shù)實(shí)踐

    微信團(tuán)隊(duì)原創(chuàng)分享:iOS版微信的內(nèi)存監(jiān)控系統(tǒng)技術(shù)實(shí)踐

    讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享

    iOS后臺(tái)喚醒實(shí)戰(zhàn):微信收款到賬語(yǔ)音提醒技術(shù)總結(jié)

    騰訊技術(shù)分享:社交網(wǎng)絡(luò)圖片的帶寬壓縮技術(shù)演進(jìn)之路

    微信團(tuán)隊(duì)分享:視頻圖像的超分辨率技術(shù)原理和應(yīng)用場(chǎng)景

    微信團(tuán)隊(duì)分享:微信每日億次實(shí)時(shí)音視頻聊天背后的技術(shù)解密

    QQ音樂(lè)團(tuán)隊(duì)分享:Android中的圖片壓縮技術(shù)詳解(上篇)

    QQ音樂(lè)團(tuán)隊(duì)分享:Android中的圖片壓縮技術(shù)詳解(下篇)

    騰訊團(tuán)隊(duì)分享:手機(jī)QQ中的人臉識(shí)別酷炫動(dòng)畫(huà)效果實(shí)現(xiàn)詳解

    騰訊團(tuán)隊(duì)分享 :一次手Q聊天界面中圖片顯示bug的追蹤過(guò)程分享

    微信團(tuán)隊(duì)分享:微信Android版小視頻編碼填過(guò)的那些坑

    IM全文檢索技術(shù)專(zhuān)題(一):微信移動(dòng)端的全文檢索優(yōu)化之路

    企業(yè)微信客戶(hù)端中組織架構(gòu)數(shù)據(jù)的同步更新方案優(yōu)化實(shí)戰(zhàn)

    微信團(tuán)隊(duì)披露:微信界面卡死超級(jí)bug“15。。。。”的來(lái)龍去脈

    QQ 18年:解密8億月活的QQ后臺(tái)服務(wù)接口隔離技術(shù)

    月活8.89億的超級(jí)IM微信是如何進(jìn)行Android端兼容測(cè)試的

    以手機(jī)QQ為例探討移動(dòng)端IM中的“輕應(yīng)用”

    一篇文章get微信開(kāi)源移動(dòng)端數(shù)據(jù)庫(kù)組件WCDB的一切!

    微信客戶(hù)端團(tuán)隊(duì)負(fù)責(zé)人技術(shù)訪(fǎng)談:如何著手客戶(hù)端性能監(jiān)控和優(yōu)化

    微信后臺(tái)基于時(shí)間序的海量數(shù)據(jù)冷熱分級(jí)架構(gòu)設(shè)計(jì)實(shí)踐

    微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信的臃腫之困與模塊化實(shí)踐之路

    微信后臺(tái)團(tuán)隊(duì):微信后臺(tái)異步消息隊(duì)列的優(yōu)化升級(jí)實(shí)踐分享

    微信團(tuán)隊(duì)原創(chuàng)分享:微信客戶(hù)端SQLite數(shù)據(jù)庫(kù)損壞修復(fù)實(shí)踐

    騰訊原創(chuàng)分享(一):如何大幅提升移動(dòng)網(wǎng)絡(luò)下手機(jī)QQ的圖片傳輸速度和成功率

    騰訊原創(chuàng)分享(二):如何大幅壓縮移動(dòng)網(wǎng)絡(luò)下APP的流量消耗(下篇)

    騰訊原創(chuàng)分享(三):如何大幅壓縮移動(dòng)網(wǎng)絡(luò)下APP的流量消耗(上篇)

    微信Mars:微信內(nèi)部正在使用的網(wǎng)絡(luò)層封裝庫(kù),即將開(kāi)源

    如約而至:微信自用的移動(dòng)端IM網(wǎng)絡(luò)層跨平臺(tái)組件庫(kù)Mars已正式開(kāi)源

    開(kāi)源libco庫(kù):?jiǎn)螜C(jī)千萬(wàn)連接、支撐微信8億用戶(hù)的后臺(tái)框架基石 [源碼下載]

    微信新一代通信安全解決方案:基于TLS1.3的MMTLS詳解

    微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信后臺(tái)保活實(shí)戰(zhàn)分享(進(jìn)程保活篇)

    微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信后臺(tái)保活實(shí)戰(zhàn)分享(網(wǎng)絡(luò)保活篇)

    Android版微信從300KB到30MB的技術(shù)演進(jìn)(PPT講稿) [附件下載]

    微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信從300KB到30MB的技術(shù)演進(jìn)

    微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡(jiǎn)(演講全文)

    微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡(jiǎn)(PPT講稿) [附件下載]

    如何解讀《微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡(jiǎn)》

    微信海量用戶(hù)背后的后臺(tái)系統(tǒng)存儲(chǔ)架構(gòu)(視頻+PPT) [附件下載]

    微信異步化改造實(shí)踐:8億月活、單機(jī)千萬(wàn)連接背后的后臺(tái)解決方案

    微信朋友圈海量技術(shù)之道PPT [附件下載]

    微信對(duì)網(wǎng)絡(luò)影響的技術(shù)試驗(yàn)及分析(論文全文)

    一份微信后臺(tái)技術(shù)架構(gòu)的總結(jié)性筆記

    架構(gòu)之道:3個(gè)程序員成就微信朋友圈日均10億發(fā)布量[有視頻]

    快速裂變:見(jiàn)證微信強(qiáng)大后臺(tái)架構(gòu)從0到1的演進(jìn)歷程(一)

    快速裂變:見(jiàn)證微信強(qiáng)大后臺(tái)架構(gòu)從0到1的演進(jìn)歷程(二)

    微信團(tuán)隊(duì)原創(chuàng)分享:Android內(nèi)存泄漏監(jiān)控和優(yōu)化技巧總結(jié)

    全面總結(jié)iOS版微信升級(jí)iOS9遇到的各種“坑”

    微信團(tuán)隊(duì)原創(chuàng)資源混淆工具:讓你的APK立減1M

    微信團(tuán)隊(duì)原創(chuàng)Android資源混淆工具:AndResGuard [有源碼]

    Android版微信安裝包“減肥”實(shí)戰(zhàn)記錄

    iOS版微信安裝包“減肥”實(shí)戰(zhàn)記錄

    移動(dòng)端IM實(shí)踐:iOS版微信界面卡頓監(jiān)測(cè)方案

    微信“紅包照片”背后的技術(shù)難題

    移動(dòng)端IM實(shí)踐:iOS版微信小視頻功能技術(shù)方案實(shí)錄

    移動(dòng)端IM實(shí)踐:Android版微信如何大幅提升交互性能(一)

    移動(dòng)端IM實(shí)踐:Android版微信如何大幅提升交互性能(二)

    移動(dòng)端IM實(shí)踐:實(shí)現(xiàn)Android版微信的智能心跳機(jī)制

    移動(dòng)端IM實(shí)踐:WhatsApp、Line、微信的心跳策略分析

    移動(dòng)端IM實(shí)踐:谷歌消息推送服務(wù)(GCM)研究(來(lái)自微信)

    移動(dòng)端IM實(shí)踐:iOS版微信的多設(shè)備字體適配方案探討

    信鴿團(tuán)隊(duì)原創(chuàng):一起走過(guò) iOS10 上消息推送(APNS)的坑

    騰訊信鴿技術(shù)分享:百億級(jí)實(shí)時(shí)消息推送的實(shí)戰(zhàn)經(jīng)驗(yàn)

    IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(上篇)

    IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(下篇)

    騰訊TEG團(tuán)隊(duì)原創(chuàng):基于MySQL的分布式數(shù)據(jù)庫(kù)TDSQL十年鍛造經(jīng)驗(yàn)分享

    微信多媒體團(tuán)隊(duì)訪(fǎng)談:音視頻開(kāi)發(fā)的學(xué)習(xí)、微信的音視頻技術(shù)和挑戰(zhàn)等

    了解iOS消息推送一文就夠:史上最全iOS Push技術(shù)詳解

    騰訊技術(shù)分享:微信小程序音視頻技術(shù)背后的故事

    騰訊資深架構(gòu)師干貨總結(jié):一文讀懂大型分布式系統(tǒng)設(shè)計(jì)的方方面面

    微信多媒體團(tuán)隊(duì)梁俊斌訪(fǎng)談:聊一聊我所了解的音視頻技術(shù)

    騰訊音視頻實(shí)驗(yàn)室:使用AI黑科技實(shí)現(xiàn)超低碼率的高清實(shí)時(shí)視頻聊天

    騰訊技術(shù)分享:微信小程序音視頻與WebRTC互通的技術(shù)思路和實(shí)踐

    手把手教你讀取Android版微信和手Q的聊天記錄(僅作技術(shù)研究學(xué)習(xí))

    微信技術(shù)分享:微信的海量IM聊天消息序列號(hào)生成實(shí)踐(算法原理篇)

    微信技術(shù)分享:微信的海量IM聊天消息序列號(hào)生成實(shí)踐(容災(zāi)方案篇)

    騰訊技術(shù)分享:GIF動(dòng)圖技術(shù)詳解及手機(jī)QQ動(dòng)態(tài)表情壓縮技術(shù)實(shí)踐

    微信團(tuán)隊(duì)分享:Kotlin漸被認(rèn)可,Android版微信的技術(shù)嘗鮮之旅

    社交軟件紅包技術(shù)解密(一):全面解密QQ紅包技術(shù)方案——架構(gòu)、技術(shù)實(shí)現(xiàn)等

    社交軟件紅包技術(shù)解密(二):解密微信搖一搖紅包從0到1的技術(shù)演進(jìn)

    社交軟件紅包技術(shù)解密(三):微信搖一搖紅包雨背后的技術(shù)細(xì)節(jié)

    社交軟件紅包技術(shù)解密(四):微信紅包系統(tǒng)是如何應(yīng)對(duì)高并發(fā)的

    社交軟件紅包技術(shù)解密(五):微信紅包系統(tǒng)是如何實(shí)現(xiàn)高可用性的

    社交軟件紅包技術(shù)解密(六):微信紅包系統(tǒng)的存儲(chǔ)層架構(gòu)演進(jìn)實(shí)踐

    社交軟件紅包技術(shù)解密(九):談?wù)勈諵紅包的功能邏輯、容災(zāi)、運(yùn)維、架構(gòu)等

    社交軟件紅包技術(shù)解密(十):手Q客戶(hù)端針對(duì)2020年春節(jié)紅包的技術(shù)實(shí)踐

    社交軟件紅包技術(shù)解密(十一):解密微信紅包隨機(jī)算法(含代碼實(shí)現(xiàn))

    社交軟件紅包技術(shù)解密(十三):微信團(tuán)隊(duì)首次揭秘微信紅包算法,為何你搶到的是0.01元

    QQ設(shè)計(jì)團(tuán)隊(duì)分享:新版 QQ 8.0 語(yǔ)音消息改版背后的功能設(shè)計(jì)思路

    微信團(tuán)隊(duì)分享:極致優(yōu)化,iOS版微信編譯速度3倍提升的實(shí)踐總結(jié)

    IM“掃一掃”功能很好做?看看微信“掃一掃識(shí)物”的完整技術(shù)實(shí)現(xiàn)

    微信團(tuán)隊(duì)分享:微信支付代碼重構(gòu)帶來(lái)的移動(dòng)端軟件架構(gòu)上的思考

    IM開(kāi)發(fā)寶典:史上最全,微信各種功能參數(shù)和邏輯規(guī)則資料匯總

    微信團(tuán)隊(duì)分享:微信直播聊天室單房間1500萬(wàn)在線(xiàn)的消息架構(gòu)演進(jìn)之路

    企業(yè)微信的IM架構(gòu)設(shè)計(jì)揭秘:消息模型、萬(wàn)人群、已讀回執(zhí)、消息撤回等

    IM全文檢索技術(shù)專(zhuān)題(四):微信iOS端的最新全文檢索技術(shù)優(yōu)化實(shí)踐

    微信團(tuán)隊(duì)分享:微信后臺(tái)在海量并發(fā)請(qǐng)求下是如何做到不崩潰的

    微信Windows端IM消息數(shù)據(jù)庫(kù)的優(yōu)化實(shí)踐:查詢(xún)慢、體積大、文件損壞等

    微信技術(shù)分享:揭秘微信后臺(tái)安全特征數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)設(shè)計(jì)

    IM跨平臺(tái)技術(shù)學(xué)習(xí)(九):全面解密新QQ桌面版的Electron內(nèi)存優(yōu)化實(shí)踐

    企業(yè)微信針對(duì)百萬(wàn)級(jí)組織架構(gòu)的客戶(hù)端性能優(yōu)化實(shí)踐

    揭秘企業(yè)微信是如何支持超大規(guī)模IM組織架構(gòu)的——技術(shù)解讀四維關(guān)系鏈

    微信團(tuán)隊(duì)分享:詳解iOS版微信視頻號(hào)直播中因幀率異常導(dǎo)致的功耗問(wèn)題

    微信團(tuán)隊(duì)分享:微信后端海量數(shù)據(jù)查詢(xún)從1000ms降到100ms的技術(shù)實(shí)踐

    大型IM工程重構(gòu)實(shí)踐:企業(yè)微信Android端的重構(gòu)之路

    IM技術(shù)干貨:假如你來(lái)設(shè)計(jì)微信的群聊,你該怎么設(shè)計(jì)?

    微信團(tuán)隊(duì)分享:來(lái)看看微信十年前的IM消息收發(fā)架構(gòu),你做到了嗎

    長(zhǎng)連接網(wǎng)關(guān)技術(shù)專(zhuān)題(十一):揭秘騰訊公網(wǎng)TGW網(wǎng)關(guān)系統(tǒng)的技術(shù)架構(gòu)演進(jìn)

    總是被低估,從未被超越,揭秘QQ極致絲滑背后的硬核IM技術(shù)優(yōu)化

    首次公開(kāi),最新手機(jī)QQ客戶(hù)端架構(gòu)的技術(shù)演進(jìn)實(shí)踐

    大型IM穩(wěn)定性監(jiān)測(cè)實(shí)踐:手Q客戶(hù)端性能防劣化系統(tǒng)的建設(shè)之路

    附錄2:QQ、微信的技術(shù)故事

    技術(shù)往事:微信估值已超5千億,雷軍曾有機(jī)會(huì)收編張小龍及其Foxmail

    QQ和微信兇猛成長(zhǎng)的背后:騰訊網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的這些年

    閑話(huà)即時(shí)通訊:騰訊的成長(zhǎng)史本質(zhì)就是一部QQ成長(zhǎng)史

    2017微信數(shù)據(jù)報(bào)告:日活躍用戶(hù)達(dá)9億、日發(fā)消息380億條

    騰訊開(kāi)發(fā)微信花了多少錢(qián)?技術(shù)難度真這么大?難在哪?

    技術(shù)往事:創(chuàng)業(yè)初期的騰訊——16年前的冬天,誰(shuí)動(dòng)了馬化騰的代碼

    技術(shù)往事:史上最全QQ圖標(biāo)變遷過(guò)程,追尋IM巨人的演進(jìn)歷史

    技術(shù)往事:“QQ群”和“微信紅包”是怎么來(lái)的?

    開(kāi)發(fā)往事:深度講述2010到2015,微信一路風(fēng)雨的背后

    開(kāi)發(fā)往事:微信千年不變的那張閃屏圖片的由來(lái)

    開(kāi)發(fā)往事:記錄微信3.0版背后的故事(距微信1.0發(fā)布9個(gè)月時(shí))

    一個(gè)微信實(shí)習(xí)生自述:我眼中的微信開(kāi)發(fā)團(tuán)隊(duì)

    首次揭秘:QQ實(shí)時(shí)視頻聊天背后的神秘組織

    為什么說(shuō)即時(shí)通訊社交APP創(chuàng)業(yè)就是一個(gè)坑?

    微信七年回顧:歷經(jīng)多少質(zhì)疑和差評(píng),才配擁有今天的強(qiáng)大

    前創(chuàng)始團(tuán)隊(duì)成員分享:盤(pán)點(diǎn)微信的前世今生——微信成功的必然和偶然

    即時(shí)通訊創(chuàng)業(yè)必讀:解密微信的產(chǎn)品定位、創(chuàng)新思維、設(shè)計(jì)法則等

    QQ的成功,遠(yuǎn)沒(méi)有你想象的那么順利和輕松

    QQ現(xiàn)狀深度剖析:你還認(rèn)為QQ已經(jīng)被微信打敗了嗎?

    [技術(shù)腦洞] 如果把14億中國(guó)人拉到一個(gè)微信群里技術(shù)上能實(shí)現(xiàn)嗎?

    QQ和微信止步不前,意味著即時(shí)通訊社交應(yīng)用創(chuàng)業(yè)的第2春已來(lái)?

    那些年微信開(kāi)發(fā)過(guò)的雞肋功能,及其帶給我們的思考

    讀懂微信:從1.0到7.0版本,一個(gè)主流IM社交工具的進(jìn)化史

    同為IM社交產(chǎn)品中的王者,QQ與微信到底有什么區(qū)別

    還原真實(shí)的騰訊:從最不被看好,到即時(shí)通訊巨頭的草根創(chuàng)業(yè)史

    QQ設(shè)計(jì)團(tuán)隊(duì)分享:新版 QQ 8.0 語(yǔ)音消息改版背后的功能設(shè)計(jì)思路

    社交應(yīng)用教父級(jí)人物的張小龍和馬化騰的同與不同

    專(zhuān)訪(fǎng)馬化騰:首次開(kāi)談個(gè)人經(jīng)歷、管理心得、技術(shù)創(chuàng)新、微信的誕生等

    一文讀懂微信之父張小龍:失敗天才、顛覆者、獨(dú)裁者、人性操控師


    (本文已同步發(fā)布于:http://www.52im.net/thread-200-1-1.html



    作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
    出處:http://www.52im.net/space-uid-1.html
    交流:歡迎加入即時(shí)通訊開(kāi)發(fā)交流群 215891622
    討論:http://www.52im.net/
    Jack Jiang同時(shí)是【原創(chuàng)Java Swing外觀工程BeautyEye】【輕量級(jí)移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
    本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處(也可前往 我的52im.net 找到我)。


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
    主站蜘蛛池模板: 亚洲hairy多毛pics大全| 精品四虎免费观看国产高清午夜| 精品一区二区三区无码免费视频| 又黄又爽的视频免费看| 亚洲国产精品久久网午夜| 国产在线国偷精品免费看 | 真人做人试看60分钟免费视频| 久久久亚洲精品蜜桃臀| 亚洲日韩国产AV无码无码精品| 99在线视频免费| 国产亚洲欧洲Aⅴ综合一区 | 亚洲第一成年免费网站| 亚洲国产一区在线| aa级女人大片喷水视频免费| 免费A级毛片无码A| 亚洲欧美国产国产综合一区| 国产91免费视频| 亚洲综合无码一区二区| 一级做a免费视频观看网站| 在线观看免费a∨网站| 亚洲另类小说图片| 久章草在线精品视频免费观看| 亚洲欧洲国产成人综合在线观看| 亚洲av无码日韩av无码网站冲| 久久精品国产免费观看| 亚洲男人的天堂www| 草久免费在线观看网站| 成人永久免费高清| 亚洲另类无码专区丝袜| 蜜臀AV免费一区二区三区| 亚洲欧洲日产国码久在线观看| 国产免费一区二区三区不卡| 亚洲一区二区三区国产精品| 亚洲精品无码成人片久久不卡| 亚洲免费福利视频| 亚洲福利视频网址| 免费观看美女用震蛋喷水的视频| 亚洲视频一区网站| 亚洲黄色免费在线观看| 亚洲精品动漫在线| 国产免费的野战视频|