Jack Jiang

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

          本文在編寫(xiě)時(shí)參考了博客作者“鹿呦呦”和在線(xiàn)課程“即時(shí)消息技術(shù)剖析與實(shí)戰(zhàn)”的相關(guān)資料,一并表示感謝。

          1、系列文章引言

          IM系統(tǒng)看似簡(jiǎn)單(沒(méi)錯(cuò),很多土老板認(rèn)為開(kāi)發(fā)個(gè)qq和微信也就是幾萬(wàn)塊錢(qián)的事... ),實(shí)責(zé)是眾多技術(shù)的應(yīng)用合體,包括網(wǎng)絡(luò)編程、移動(dòng)開(kāi)發(fā)、后端開(kāi)發(fā)、高并發(fā)、高可用、高安全等技術(shù)范疇,再加上多端使用不同的編程語(yǔ)言,想要湊齊一個(gè)典型的IM產(chǎn)品技術(shù)棧那也不是個(gè)容易事。

          而對(duì)于IM開(kāi)發(fā)入門(mén)者來(lái)說(shuō),想要在眾多的IM技術(shù)術(shù)語(yǔ)和概念中找到學(xué)習(xí)的方向和需要的資料,那也是件很讓人抓狂的事。如果看到不該看的技術(shù)深水區(qū)文章,直接從入門(mén)到放棄——被活活嚇退,那也是相當(dāng)悲劇的。

          本系列文章將盡量從理論概念入手,通俗易懂的梳理IM中的基礎(chǔ)技術(shù)概念和熱門(mén)技術(shù)點(diǎn),希望能幫你理清看似一團(tuán)亂麻的IM知識(shí)體系,助你找到清晰的IM技術(shù)學(xué)習(xí)方向,來(lái)日工資翻倍、迎娶白富美也未必不可能!

           

          友情提示:本系列文章側(cè)重于理論概念的講述,篇幅有限,點(diǎn)到即止,如需系統(tǒng)、深入、具體地學(xué)習(xí)IM技術(shù)的方方面面,請(qǐng)從此文入手:《新手入門(mén)一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM》(史詩(shī)級(jí)文章,適合從入門(mén)到放棄)。

          學(xué)習(xí)交流:

          - 即時(shí)通訊/推送技術(shù)開(kāi)發(fā)交流5群:215477170[推薦]

          - 移動(dòng)端IM開(kāi)發(fā)入門(mén)文章:《新手入門(mén)一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM

          2、系列文章目錄

          IM開(kāi)發(fā)快速入門(mén)(一):什么是IM系統(tǒng)?》(* 本文

          《IM開(kāi)發(fā)快速入門(mén)(二):什么是IM系統(tǒng)的實(shí)時(shí)性? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(三):什么是IM系統(tǒng)的可靠性? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(四):什么是IM系統(tǒng)的一致性? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(五):什么是IM系統(tǒng)的安全性? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(六):什么是IM系統(tǒng)的的心跳機(jī)制? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(七):如何理解并實(shí)現(xiàn)IM系統(tǒng)消息未讀數(shù)? (稍后發(fā)布)》

          《IM開(kāi)發(fā)快速入門(mén)(八):如何理解并實(shí)現(xiàn)IM系統(tǒng)的多端消息漫游? (稍后發(fā)布)》

          3、本文內(nèi)容概述

          本文將帶你快速了解一個(gè)主流IM系統(tǒng)的應(yīng)用場(chǎng)景、典型架構(gòu)、技術(shù)特點(diǎn)和功能組成,幫你快速建立對(duì)IM系統(tǒng)的主觀(guān)認(rèn)知。

          如果你不想從技術(shù)的角度理解IM原理,可以嘗試閱讀此文:《知識(shí)科普:IM聊天應(yīng)用是如何將消息發(fā)送給對(duì)方的?(非技術(shù)篇)》。

          本文已收入即時(shí)通訊網(wǎng)的入門(mén)綱領(lǐng)性文章《新手入門(mén)一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM》。

          本文已同步發(fā)布于“即時(shí)通訊技術(shù)圈”公眾號(hào),歡迎關(guān)注:

          ▲ 本文在公眾號(hào)上的鏈接是:https://mp.weixin.qq.com/s/h7L4UGHRl7qI1bi8WyZ5iw,原文鏈接是:http://www.52im.net/thread-3065-1-1.html

          4、IM的應(yīng)用場(chǎng)景

          IM其實(shí)并不局限于聊天、社交這類(lèi)“典型”應(yīng)用中,實(shí)際上它已經(jīng)廣泛運(yùn)用于我們身邊形形色色的軟件中。

          聊天、直播、在線(xiàn)客服、物聯(lián)網(wǎng)等所有需要實(shí)時(shí)互動(dòng)、高實(shí)時(shí)性的場(chǎng)景等等,都需要應(yīng)用到 IM 技術(shù)。

          下面這些場(chǎng)景是我們大家都熟悉的,都用到了IM技術(shù):

          • 1)微信、qq、釘釘?shù)戎髁鱅M應(yīng)用:這是IM技術(shù)的典型應(yīng)用場(chǎng)景;
          • 2)微博、知乎等社區(qū)應(yīng)用:它們利用IM技術(shù)實(shí)現(xiàn)了用戶(hù)私信等點(diǎn)對(duì)點(diǎn)聊天;
          • 3)抖音、快手等直播/短視頻應(yīng)用:它們利用IM技術(shù)實(shí)現(xiàn)了與主播的實(shí)時(shí)互動(dòng);
          • 4)米家等智能家居物聯(lián)網(wǎng)應(yīng)用:利用IM技術(shù)實(shí)現(xiàn)實(shí)時(shí)控制、遠(yuǎn)程監(jiān)控等;
          • 5)滴滴、Uber等共享家通類(lèi)應(yīng)用:利用IM技術(shù)實(shí)現(xiàn)位置共享;
          • 6)在線(xiàn)教育類(lèi)應(yīng)用:利用IM技術(shù)實(shí)現(xiàn)在線(xiàn)白板。 

          5、IM的典型架構(gòu)

          一個(gè)典型的IM架構(gòu)類(lèi)似于下圖這樣:

          本圖引用自《即時(shí)消息技術(shù)剖析與實(shí)戰(zhàn)》學(xué)習(xí)筆記1——IM系統(tǒng)的架構(gòu)》一文

          如上圖所示,IM架構(gòu)中的各分層職責(zé)如下:

          • 1)客戶(hù)端:作為與服務(wù)端進(jìn)行消息收發(fā)通信的終端;
          • 2)接入層:也叫網(wǎng)關(guān)層,為客戶(hù)端收發(fā)消息提供入口;
          • 3)邏輯層:負(fù)責(zé)IM系統(tǒng)各功能的核心邏輯實(shí)現(xiàn);
          • 4)存儲(chǔ)層:負(fù)責(zé)IM系統(tǒng)相關(guān)數(shù)據(jù)的持久化存儲(chǔ),包括消息內(nèi)容、賬號(hào)信息、社交關(guān)系鏈等;
          • 5)第三方服務(wù):保證APP在未打開(kāi)或后臺(tái)運(yùn)行時(shí)也能收到消息通知(這主要是第第3方消息推送服務(wù))。

          尤其對(duì)于“接入層”,它的職責(zé)最為關(guān)鍵,具體是:

          • 1)保持海量用戶(hù)連接;
          • 2)解析協(xié)議,對(duì)傳輸內(nèi)容進(jìn)行編解碼;
          • 3)維護(hù)客戶(hù)端的連接(也叫“Session”);
          • 4)推送消息。

          以下文章適合IM架構(gòu)設(shè)計(jì)入門(mén),有興趣可以讀一讀:

          6、IM技術(shù)的特點(diǎn)

          IM技術(shù)的特點(diǎn)主要就是以下4點(diǎn): 

          ▶ 1)實(shí)時(shí)性:

          對(duì)于IM系統(tǒng),“實(shí)時(shí)”二字是精髓,也是這項(xiàng)技術(shù)存在關(guān)鍵意義所在。它保證的是消息的實(shí)時(shí)觸達(dá)。

          舉個(gè)例子:如果跟你的好友微信或qq聊天,我發(fā)的消息他不能即時(shí)收到,或者他發(fā)的信息你也不知道什么時(shí)候能收到,這基本上也就沒(méi)法聊下去了(干嗎不痛快打個(gè)電話(huà)呢)。

          ▶ 2)可靠性:

          保證消息的不丟失和不重復(fù),是IM系統(tǒng)的另一個(gè)關(guān)鍵技術(shù)特點(diǎn)。試想,當(dāng)你在用qq或微信跟女朋友聊天,好不容易鼓起勇氣向“她”表白,結(jié)果這消息要是丟包了,那肯定得卸載應(yīng)用了,搞不好砸手機(jī)都有可能。當(dāng)然,好話(huà)不說(shuō)二遍,消息重復(fù)也同樣惱人。

          以下文章對(duì)消息的不丟/不重問(wèn)題進(jìn)行了深入探討,有興趣可以詳讀:

          ▶ 3)一致性:

          對(duì)于單聊消息而言,保證同一個(gè)設(shè)備的時(shí)間順序、不同設(shè)備的漫游同步,也是相當(dāng)重要的一環(huán)。

          IM系統(tǒng)中的消息交互,就到底就是人跟人在“說(shuō)話(huà)”,前言不搭理后言、或者胡言亂語(yǔ)式的消息展現(xiàn),那不是人瘋了就是程序瘋了,總之就是沒(méi)法再聊下去了。

          以下文章對(duì)消息時(shí)序問(wèn)題進(jìn)行了深入探討,有興趣可以詳讀:

          ▶ 4)安全性:

          保證數(shù)據(jù)傳輸安全、數(shù)據(jù)存儲(chǔ)安全、消息內(nèi)容安全,也是IM系統(tǒng)必不可少的特性。尤其在私聊場(chǎng)景下,如果不能做到安全性,聊天的體驗(yàn)跟被人偷窺的感覺(jué)是沒(méi)有區(qū)別的。

          以下文章對(duì)IM的安全問(wèn)題進(jìn)行了深入探討,有興趣可以詳讀:

          7、IM的功能組成

          淺顯的角度講,一個(gè)典型的IM功能組成,無(wú)非就是以下5樣:

          • 1)聯(lián)系人列表;
          • 2)聊天界面;
          • 3)消息發(fā)送通道;
          • 4)消息接收通道;
          • 5)消息存儲(chǔ);
          • 6)消息未讀數(shù)。

          我們一樣一樣來(lái)說(shuō)說(shuō)各自的用途。

          ▶ 1)聯(lián)系人列表:

          這個(gè)很好理解,使用IM系統(tǒng)的第一步,就是要解決“跟誰(shuí)聊”的問(wèn)題。從功能表象上來(lái)說(shuō),聯(lián)系人列表也就是社交關(guān)系列表,無(wú)非就是個(gè)信息列表界面,有什么特殊的地方?

          聯(lián)系人列表看似簡(jiǎn)單,實(shí)際上它是一系列IM系統(tǒng)的社交關(guān)系確立動(dòng)作的結(jié)果體現(xiàn)。

          要想建立聯(lián)系人列表,你可能需要實(shí)現(xiàn)以下邏輯:

          • 1)怎么能找到想要聊天的人?(需要實(shí)現(xiàn)隨機(jī)查找?精確查找?)
          • 2)怎么決定要不要跟這個(gè)人聊?(需要實(shí)現(xiàn)對(duì)方的個(gè)人信息查看)
          • 3)開(kāi)始發(fā)出好友請(qǐng)求;
          • 4)被請(qǐng)求的一方,還可以決定是“同意”還是“拒絕”(“同意”該怎么處理?“拒絕”又該怎么處理?)。

          總的來(lái)說(shuō),聯(lián)系人列表的建立,是一個(gè)IM系統(tǒng)聊天關(guān)系確立的表現(xiàn),不可或缺。

          ▶ 2)聊天界面: 

          聊天界面看似很平常,實(shí)際它就是IM系統(tǒng)客戶(hù)端的核心功能所在,所有主要的IM功能都是通過(guò)它展現(xiàn)。

          它應(yīng)該具備的能力有:

          • 1)各種聊天功能按鈕:語(yǔ)音留言、圖片、文字、表情、文件、實(shí)時(shí)電話(huà)、實(shí)時(shí)視頻等;
          • 2)各種聊天消息顯示:各種消息都有不同的UI顯示元素和處理邏輯;
          • 3)流暢的使用體驗(yàn):大量不同類(lèi)型的消息顯示時(shí),不能卡頓;
          • 4)即時(shí)顯示聊天消息:網(wǎng)絡(luò)線(xiàn)程收到的消息,要馬上在UI上顯示出來(lái);
          • 5)歷史消息的加載:上次聊過(guò)的內(nèi)容也得顯示出來(lái)吧。

          以上只是簡(jiǎn)單羅列,這看似簡(jiǎn)單的聊天界面,能把上面列表的事情做好,工作量也不小吧。

          ▶ 3)消息發(fā)送通道:

          下圖是一個(gè)典型的IM消息收發(fā)通道示意: 

          如上圖所示,消息發(fā)送通道這個(gè)比較好懂,最淺顯易懂的理解就是用tcp或udp,建立socket長(zhǎng)連接,需要發(fā)消息的時(shí)候,wirte一下就過(guò)去了,好簡(jiǎn)單!

          但,事情往往不是想象的這么簡(jiǎn)單:

          • 1)如何保證這條socket長(zhǎng)連接時(shí)一直處于可用的狀態(tài)?
          • 2)當(dāng)socket長(zhǎng)連接不可用時(shí),用戶(hù)此時(shí)發(fā)送的消息該怎么處理?
          • 3)怎么保證發(fā)送的消息不丟?
          • 4)怎么保證發(fā)送的消息不復(fù)重?
          • 5)怎么保證發(fā)送的消息亂序?
          • 6)當(dāng)對(duì)方不在線(xiàn)時(shí),發(fā)送的消息去哪了?
          • 7)發(fā)送的消息,能保證實(shí)時(shí)送到?

          這么一說(shuō),事情還挺多(那不廢話(huà)嗎。。。)。

          ▶ 4)消息接收通道:

          正如上節(jié)中的消息收發(fā)通道示意圖所示,消息接收通道也很好理解,對(duì)方通過(guò)消息發(fā)送通道write的消息,我得收到并顯示啊。

          要實(shí)現(xiàn)一個(gè)可靠的消息接收通道,也并非易事:

          • 1)如何保證socket長(zhǎng)連接通道能隨時(shí)處于良好的邊接狀態(tài)(隨時(shí)接收對(duì)方write的消息);
          • 2)當(dāng)socket長(zhǎng)連接斷開(kāi)時(shí),對(duì)方發(fā)送消息該怎么實(shí)現(xiàn)?
          • 3)當(dāng)socket恢復(fù)連接時(shí),怎么恢復(fù)之前的聊天現(xiàn)場(chǎng)?
          • 4)當(dāng)我收到對(duì)方的消息時(shí),對(duì)方怎么知道我已經(jīng)收到了?
          • 5)當(dāng)重復(fù)收到對(duì)方的消息時(shí),該怎么處理?
          • 6)當(dāng)收到的消息時(shí)序有錯(cuò)亂,該怎么處理?

          ▶ 5)消息存儲(chǔ):

          消息存儲(chǔ)這個(gè)功能好理解,聊天的消息如果存儲(chǔ),下次再聊的時(shí)候就不知道之前聊過(guò)什么,做不到這一點(diǎn),這個(gè)IM系統(tǒng)的聊天體驗(yàn)好不起來(lái)。

          那么,哪些情況下需要進(jìn)行消息存儲(chǔ)呢:

          • 1)對(duì)方不在線(xiàn)時(shí):聊天消息應(yīng)該存儲(chǔ)(這叫離線(xiàn)消息存儲(chǔ));
          • 2)對(duì)方在線(xiàn)時(shí):聊天消息也要存到本地存儲(chǔ)(這叫消息緩存);
          • 3)對(duì)方在線(xiàn)或不在線(xiàn)時(shí):聊天消息都要存到服務(wù)端(用于實(shí)現(xiàn)多設(shè)備的消息漫游和同步)。

          具體要存儲(chǔ)的內(nèi)容和時(shí)機(jī)也就上面這幾樣。

          但技術(shù)落到實(shí)處,要做的事情同樣少不了:

          • 1)離線(xiàn)消息該怎么多久?
          • 2)圖片、短視頻、大文件這類(lèi)的離線(xiàn)消息,多媒體文件該怎么存(有可能量會(huì)很大)?
          • 3)當(dāng)本地的消息積累太多時(shí),怎么能保證本地存儲(chǔ)的性能?
          • 4)當(dāng)應(yīng)用更新、升級(jí)或異常時(shí),怎么能保證本地存儲(chǔ)的完整性(不被破壞)?
          • 5)怎么能保證多設(shè)備消息能不丟、不重、不亂?

          這么多需要考慮的內(nèi)容,也挺讓人抓狂。

          下圖是一個(gè)IM系統(tǒng)的典型存儲(chǔ)架構(gòu)設(shè)計(jì),了解一下:

          本圖引用自《現(xiàn)代IM系統(tǒng)中聊天消息的同步和存儲(chǔ)方案探討》一文

          存儲(chǔ)是IM系統(tǒng)的基石,以下文章可以深入閱讀:

          ▶ 6)消息未讀數(shù):

          消息未讀數(shù)?看起來(lái)也就是那個(gè)所有IM應(yīng)用都有的未讀小紅點(diǎn)嘛。是的,看起來(lái)也好簡(jiǎn)單!

          然而,消息未讀數(shù)功能的實(shí)現(xiàn)也一樣不簡(jiǎn)單:

          • 1)未讀數(shù)是客戶(hù)端實(shí)現(xiàn)還是服務(wù)端實(shí)現(xiàn)?
          • 2)會(huì)話(huà)未讀和總未讀怎么保持一致?
          • 3)多終端情況下,怎么保證未讀數(shù)的一致性(我在這臺(tái)設(shè)備上讀沒(méi)讀,那臺(tái)設(shè)備怎么知道的?)?

          是的,看起來(lái)就這么簡(jiǎn)簡(jiǎn)單單的3件事,但深入思考一下,還真的簡(jiǎn)單不起來(lái)。

          8、本文小結(jié)

          IM系統(tǒng)的應(yīng)用場(chǎng)景已經(jīng)不單單是IM聊天應(yīng)用這一種形態(tài),它已經(jīng)融入到互聯(lián)網(wǎng)應(yīng)用的方方面面,必竟誰(shuí)都想自已的應(yīng)用具備“實(shí)時(shí)”交互這種能力,因?yàn)轶w驗(yàn)太好了。

          IM系統(tǒng)典型架構(gòu)無(wú)非就是網(wǎng)絡(luò)接入層、業(yè)務(wù)邏輯層、數(shù)據(jù)存儲(chǔ)層,除開(kāi)網(wǎng)絡(luò)接入層,其它各層其實(shí)跟普通的應(yīng)用系統(tǒng)看起來(lái)差別并不是太大。

          IM系統(tǒng)的技術(shù)特點(diǎn)來(lái)說(shuō),就是實(shí)時(shí)性、可靠性、一致性、安全性,除了實(shí)時(shí)性對(duì)于多數(shù)應(yīng)用來(lái)說(shuō)并不關(guān)心,其它的指標(biāo)也很好理解。

          IM系統(tǒng)的功能組成上,聯(lián)系人列表用于數(shù)據(jù)模型的建立、聊天界面承載了IM系統(tǒng)的終端展現(xiàn)、消息的收發(fā)通道用于實(shí)現(xiàn)“實(shí)時(shí)”這個(gè)特性、存儲(chǔ)和未讀數(shù)看似不是必須但用戶(hù)體驗(yàn)上確必不可少。

          附錄:更多IM開(kāi)發(fā)資料匯總

          [1] 有關(guān)IM架構(gòu)設(shè)計(jì)的文章:

          淺談IM系統(tǒng)的架構(gòu)設(shè)計(jì)

          簡(jiǎn)述移動(dòng)端IM開(kāi)發(fā)的那些坑:架構(gòu)設(shè)計(jì)、通信協(xié)議和客戶(hù)端

          一套海量在線(xiàn)用戶(hù)的移動(dòng)端IM架構(gòu)設(shè)計(jì)實(shí)踐分享(含詳細(xì)圖文)

          一套原創(chuàng)分布式即時(shí)通訊(IM)系統(tǒng)理論架構(gòu)方案

          從零到卓越:京東客服即時(shí)通訊系統(tǒng)的技術(shù)架構(gòu)演進(jìn)歷程

          蘑菇街即時(shí)通訊/IM服務(wù)器開(kāi)發(fā)之架構(gòu)選擇

          騰訊QQ1.4億在線(xiàn)用戶(hù)的技術(shù)挑戰(zhàn)和架構(gòu)演進(jìn)之路PPT

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

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

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

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

          17年的實(shí)踐:騰訊海量產(chǎn)品的技術(shù)方法論

          移動(dòng)端IM中大規(guī)模群消息的推送如何保證效率、實(shí)時(shí)性?

          現(xiàn)代IM系統(tǒng)中聊天消息的同步和存儲(chǔ)方案探討

          WhatsApp技術(shù)實(shí)踐分享:32人工程團(tuán)隊(duì)創(chuàng)造的技術(shù)神話(huà)

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

          王者榮耀2億用戶(hù)量的背后:產(chǎn)品定位、技術(shù)架構(gòu)、網(wǎng)絡(luò)方案等

          IM系統(tǒng)的MQ消息中間件選型:Kafka還是RabbitMQ?

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

          以微博類(lèi)應(yīng)用場(chǎng)景為例,總結(jié)海量社交系統(tǒng)的架構(gòu)設(shè)計(jì)步驟

          快速理解高性能HTTP服務(wù)端的負(fù)載均衡技術(shù)原理

          子彈短信光鮮的背后:網(wǎng)易云信首席架構(gòu)師分享億級(jí)IM平臺(tái)的技術(shù)實(shí)踐

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(五):通俗易懂,正確理解并用好MQ消息隊(duì)列

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

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

          新手入門(mén):零基礎(chǔ)理解大型分布式架構(gòu)的演進(jìn)歷史、技術(shù)原理、最佳實(shí)踐

          一套高可用、易伸縮、高并發(fā)的IM群聊、單聊架構(gòu)方案設(shè)計(jì)實(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ù)解密(七):支付寶紅包的海量高并發(fā)技術(shù)實(shí)踐

          社交軟件紅包技術(shù)解密(八):全面解密微博紅包技術(shù)方案

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

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

          從游擊隊(duì)到正規(guī)軍(一):馬蜂窩旅游網(wǎng)的IM系統(tǒng)架構(gòu)演進(jìn)之路

          從游擊隊(duì)到正規(guī)軍(二):馬蜂窩旅游網(wǎng)的IM客戶(hù)端架構(gòu)演進(jìn)和實(shí)踐總結(jié)

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(六):數(shù)據(jù)庫(kù)用NoSQL還是SQL?讀這篇就夠了!

          瓜子IM智能客服系統(tǒng)的數(shù)據(jù)架構(gòu)設(shè)計(jì)(整理自現(xiàn)場(chǎng)演講,有配套PPT)

          阿里釘釘技術(shù)分享:企業(yè)級(jí)IM王者——釘釘在后端架構(gòu)上的過(guò)人之處

          從游擊隊(duì)到正規(guī)軍(三):基于Go的馬蜂窩旅游網(wǎng)分布式IM系統(tǒng)技術(shù)實(shí)踐

          微信后臺(tái)基于時(shí)間序的新一代海量數(shù)據(jù)存儲(chǔ)架構(gòu)的設(shè)計(jì)實(shí)踐

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(九):想開(kāi)發(fā)IM集群?先搞懂什么是RPC!

          >> 更多同類(lèi)文章 ……

          [2] IM開(kāi)發(fā)熱門(mén)綜合文章:

          新手入門(mén)一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM

          移動(dòng)端IM開(kāi)發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”

          移動(dòng)端IM開(kāi)發(fā)者必讀(二):史上最全移動(dòng)弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)

          從客戶(hù)端的角度來(lái)談?wù)勔苿?dòng)端IM的消息可靠性和送達(dá)機(jī)制

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課:正確理解前置HTTP SSO單點(diǎn)登錄接口的原理

          移動(dòng)端IM中大規(guī)模群消息的推送如何保證效率、實(shí)時(shí)性?

          移動(dòng)端IM開(kāi)發(fā)需要面對(duì)的技術(shù)問(wèn)題

          開(kāi)發(fā)IM是自己設(shè)計(jì)協(xié)議用字節(jié)流好還是字符流好?

          請(qǐng)問(wèn)有人知道語(yǔ)音留言聊天的主流實(shí)現(xiàn)方式嗎?

          IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(一):保證在線(xiàn)實(shí)時(shí)消息的可靠投遞

          IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(二):保證離線(xiàn)消息的可靠投遞

          如何保證IM實(shí)時(shí)消息的“時(shí)序性”與“一致性”?

          一個(gè)低成本確保IM消息時(shí)序的方法探討

          IM單聊和群聊中的在線(xiàn)狀態(tài)同步應(yīng)該用“推”還是“拉”?

          IM群聊消息如此復(fù)雜,如何保證不丟不重?

          談?wù)勔苿?dòng)端 IM 開(kāi)發(fā)中登錄請(qǐng)求的優(yōu)化

          移動(dòng)端IM登錄時(shí)拉取數(shù)據(jù)如何作到省流量?

          淺談移動(dòng)端IM的多點(diǎn)登錄和消息漫游原理

          完全自已開(kāi)發(fā)的IM該如何設(shè)計(jì)“失敗重試”機(jī)制?

          通俗易懂:基于集群的移動(dòng)端IM接入層負(fù)載均衡方案分享

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

          即時(shí)通訊系統(tǒng)的原理、技術(shù)和應(yīng)用(技術(shù)論文)

          開(kāi)源IM工程“蘑菇街TeamTalk”的現(xiàn)狀:一場(chǎng)有始無(wú)終的開(kāi)源秀

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

          全面掌握移動(dòng)端主流圖片格式的特點(diǎn)、性能、調(diào)優(yōu)等

          子彈短信光鮮的背后:網(wǎng)易云信首席架構(gòu)師分享億級(jí)IM平臺(tái)的技術(shù)實(shí)踐

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(五):通俗易懂,正確理解并用好MQ消息隊(duì)列

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

          自已開(kāi)發(fā)IM有那么難嗎?手把手教你自擼一個(gè)Andriod版簡(jiǎn)易IM (有源碼)

          融云技術(shù)分享:解密融云IM產(chǎn)品的聊天消息ID生成策略

          IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(六):數(shù)據(jù)庫(kù)用NoSQL還是SQL?讀這篇就夠了!

          適合新手:從零開(kāi)發(fā)一個(gè)IM服務(wù)端(基于Netty,有完整源碼)

          拿起鍵盤(pán)就是干:跟我一起徒手開(kāi)發(fā)一套分布式IM系統(tǒng)

          適合新手:手把手教你用Go快速搭建高性能、可擴(kuò)展的IM系統(tǒng)(有源碼)

          IM里“附近的人”功能實(shí)現(xiàn)原理是什么?如何高效率地實(shí)現(xiàn)它?

          IM要做手機(jī)掃碼登錄?先看看微信的掃碼登錄功能技術(shù)原理

          IM消息ID技術(shù)專(zhuān)題(一):微信的海量IM聊天消息序列號(hào)生成實(shí)踐(算法原理篇)

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

          IM消息ID技術(shù)專(zhuān)題(三):解密融云IM產(chǎn)品的聊天消息ID生成策略

          IM消息ID技術(shù)專(zhuān)題(四):深度解密美團(tuán)的分布式ID生成算法

          IM消息ID技術(shù)專(zhuān)題(五):開(kāi)源分布式ID生成器UidGenerator的技術(shù)實(shí)現(xiàn)

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

          IM開(kāi)發(fā)干貨分享:我是如何解決大量離線(xiàn)消息導(dǎo)致客戶(hù)端卡頓的

          IM開(kāi)發(fā)快速入門(mén)(一):什么是IM系統(tǒng)?

          >> 更多同類(lèi)文章 ……

          (本文同步發(fā)布于:http://www.52im.net/thread-3065-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外觀(guān)工程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
          主站蜘蛛池模板: 腾冲县| 滦南县| 荥经县| 宣化县| 吉木萨尔县| 阿拉善右旗| 鲁山县| 盘锦市| 江门市| 黎平县| 克山县| 台前县| 永德县| 佛教| 东港市| 龙州县| 鲁甸县| 茶陵县| 牟定县| 溆浦县| 嵊泗县| 商河县| 阜新市| 泾阳县| 英山县| 肇源县| 玉门市| 广昌县| 肥乡县| 大邑县| 泰州市| 凤庆县| 连江县| 达日县| 商河县| 梁山县| 高邑县| 喀喇沁旗| 广水市| 南康市| 通山县|