我的IM服務開發(fā)之路-叩開混沌之門

IM明刷,Instant messaging的縮寫,翻譯為中文就是即時通訊满粗。例如QQ辈末,微信等都是即時通訊領域的軟件。俗稱聊天軟件

最近有個想法映皆,對于我兩年的IM開發(fā)經(jīng)歷做個簡要的總結挤聘,本著學習和交流的心態(tài),分幾個篇幅寫出一些自己對于分布式IM系統(tǒng)的理解捅彻,期望能收到大牛的指正和意見组去。本系列文章所說的IM都是指在分布式環(huán)境下的IM系統(tǒng)。

單就分布式系統(tǒng)步淹,就已經(jīng)有很深很深的水了添怔,這里會較多地涉及到分布式系統(tǒng)下的內(nèi)容,正好伴隨著IM的業(yè)務進行自我回顧贤旷。


自己對IM的特性做個非官方的總結:

1. 即時性广料。從字面意思不難理解,IM對于即時性的要求比較高幼驶,需要實時地收到對方發(fā)來的消息艾杏。

2. 可交互。消息雙方的用戶需要能夠對消息作出回應盅藻,即進行交互购桑,互動。如果發(fā)出一片文字過來卻不能與之進行交互氏淑,也算不得IM勃蜘。

3. 高度依賴網(wǎng)絡。在斷網(wǎng)的情況下也不能進行通暢的IM交互假残。

4. 基于可視化或者是可感知的信息缭贡。比如文字炉擅,圖片,語音阳惹,文件谍失,表情。這些都是基于眼睛或者耳朵能感知到的莹汤。你不能在網(wǎng)上傳遞一個溫暖的懷抱給對方吧快鱼?或者說你不能通過IM給對方一巴掌吧?也不能把香味傳過去給對方纲岭。(或者這些也可以是IM的一個發(fā)展方向抹竹,哈哈,反水好快止潮。柒莉。。)

5. 不安全性沽翔【ばⅲ基于網(wǎng)絡的交互,都是不安全的仅偎,任何系統(tǒng)都有被攻破的可能性跨蟹。別人給你發(fā)的一串文字,可能是經(jīng)過中間人修改過的橘沥。

6. 虛擬窗轩。網(wǎng)絡都是虛擬的。所以對于網(wǎng)絡上的消息座咆,我們應該有基本的辨別能力痢艺,不能輕易相信網(wǎng)上的信息。例子就不舉了介陶,網(wǎng)絡詐騙多了去了堤舒。

7. 必須是兩個端及以上進行聊天〔肝兀可以是單人之間的聊天舌缤,也可以是一群人之間的聊天。當然某残,你也可以自己和自己聊天国撵。

8. 傳播擴散快。既然是即時通訊玻墅,其信息擴散的能力是很快的介牙,可以一個傳一個,也可以是病毒式分裂擴散澳厢。

IM系統(tǒng)對于技術上有如下幾點要求:

1. 如何保證信息即時地成功投遞給對方环础,消息不丟失囚似,不重復;

2. 如何保證信息的順序到達喳整;

3. 如何保證信息中途不會被篡改;

4. 如何保證消息在收發(fā)雙方展示一致裸扶;

5. 如何保證給用戶省電省流量框都;

6. 如何保證IM系統(tǒng)的數(shù)據(jù)一致性;

7. 如何保證IM系統(tǒng)的可用性呵晨;

8. 如何保證IM系統(tǒng)的分區(qū)容忍魏保;

9. CAP不可能同時滿足,系統(tǒng)設計中如何做取舍摸屠;

10. 如何應對消息風暴引起的網(wǎng)絡波動谓罗;

11. 如何避免或減少系統(tǒng)的消息風暴;

12. 在沒有全局時鐘的情況下如何保證有序季二;

若想在IM系統(tǒng)開發(fā)中游刃有余檩咱,需要熟練get如下技能:

1. TCP/IP協(xié)議,HTTP協(xié)議胯舷;

2. Linux功底:shell命令刻蚯,linux操作系統(tǒng)的特性及脾氣,Linux下的常用開發(fā)接口桑嘶;

3. 分布式系統(tǒng)原理炊汹;

4. 一種服務端開發(fā)語言:C/C++/Java/Nodejs/Golang/PHP and so on;

5. 字符編碼逃顶,不同進制之間的轉換讨便;

6. 加密、壓縮技術以政;

7. 存儲:mysql霸褒,nosql,以及不同存儲介質下存儲系統(tǒng)性能的發(fā)揮程度盈蛮;

8. 如何優(yōu)雅地與android傲霸,iOS,win眉反,mac昙啄,web,運維之間進行“撕逼”寸五;


本篇文章僅僅是羅列了幾個點梳凛,提出了幾個問題。問題都是我在開發(fā)過程中遇到或思考的一些問題梳杏,很多細節(jié)地方深入探究非常有意思韧拒,往往每個決定感覺都是在和哲學做對抗淹接。


分布式系統(tǒng)的cap
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市叛溢,隨后出現(xiàn)的幾起案子塑悼,更是在濱河造成了極大的恐慌,老刑警劉巖楷掉,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢蒜,死亡現(xiàn)場離奇詭異,居然都是意外死亡烹植,警方通過查閱死者的電腦和手機斑鸦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來草雕,“玉大人巷屿,你說我怎么就攤上這事《蘸纾” “怎么了嘱巾?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诫钓。 經(jīng)常有香客問我浓冒,道長,這世上最難降的妖魔是什么尖坤? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任稳懒,我火速辦了婚禮,結果婚禮上慢味,老公的妹妹穿的比我還像新娘场梆。我一直安慰自己,他們只是感情好纯路,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布或油。 她就那樣靜靜地躺著,像睡著了一般驰唬。 火紅的嫁衣襯著肌膚如雪顶岸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天叫编,我揣著相機與錄音辖佣,去河邊找鬼。 笑死搓逾,一個胖子當著我的面吹牛卷谈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霞篡,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼世蔗,長吁一口氣:“原來是場噩夢啊……” “哼端逼!你這毒婦竟也來了?” 一聲冷哼從身側響起污淋,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤顶滩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寸爆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體礁鲁,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年而昨,在試婚紗的時候發(fā)現(xiàn)自己被綠了救氯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片找田。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡歌憨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墩衙,到底是詐尸還是另有隱情务嫡,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布漆改,位于F島的核電站心铃,受9級特大地震影響,放射性物質發(fā)生泄漏挫剑。R本人自食惡果不足惜去扣,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望樊破。 院中可真熱鬧愉棱,春花似錦、人聲如沸哲戚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顺少。三九已至朋其,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脆炎,已是汗流浹背梅猿。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秒裕,地道東北人粒没。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像簇爆,于是被迫代替她去往敵國和親癞松。 傳聞我的和親對象是個殘疾皇子爽撒,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,757評論 25 707
  • 喝火令 獨醉秋光 陌上梧桐滿,園中嫩菊香响蓉。 道旁丹桂馥芬芳硕勿。 楓葉火紅翻轉,情意已飛揚枫甲。 世路經(jīng)年寂源武,...
    書中樵夫閱讀 841評論 7 50
  • 某天中午看到朋友圈里,老同學曬了兩張剛出生孩子的照片想幻,她的孩子兜兜終于出生了粱栖。此時,雖是冬天脏毯,但是陽光很好闹究,曬在身...
    涼涼塵閱讀 595評論 2 1
  • 真正的友情是不企求什么也不依靠什么,只有心甘情愿地相互關愛與幫助食店,總是既純凈又脆弱渣淤,心底無私天地寬!
    春的守望閱讀 100評論 0 2
  • 其實已經(jīng)是第十一天了吉嫩,昨天睡了過去价认,現(xiàn)在是九月29日了,昨天給學校打完了郵件自娩,打包了行李用踩,剩下的就是在家呆了一天,...
    兆之閱讀 140評論 0 0