丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 娛樂星聞

im軟件 微信、陌陌等著名IM軟件設(shè)計(jì)架構(gòu)詳解

來源:https://blog . csdn . net/justinjing 0612/article/details/38322353

我們分析了微信、陌陌等。,并把它們發(fā)出去分享(已經(jīng)很久了)。

電源:移動(dòng)設(shè)備最大的瓶頸是電源。因?yàn)橛脩舨荒茈S時(shí)攜帶電源和充電寶。因此,必須考慮電源問題。需要檢查我們的項(xiàng)目是否在后臺(tái)運(yùn)行,心跳包的發(fā)送時(shí)間是否合理。

流量:對(duì)于很多國內(nèi)用戶來說,可能還是每月30M,所以一定要從廣大用戶的角度考慮問題。一個(gè)包只能解決一個(gè)包。

網(wǎng)絡(luò):這也是IM的核心內(nèi)容。對(duì)于我們來說,在任何網(wǎng)絡(luò)下等待順暢的聊天都不是一件容易的事情。很多公司使用xmpp框架。如果是在強(qiáng)大的網(wǎng)絡(luò)環(huán)境下,xmpp完全沒有問題。但是xmpp在那種弱的網(wǎng)絡(luò)環(huán)境下什么都做不了,用戶體驗(yàn)很垃圾。

個(gè)人覺得xmpp可以拿來玩玩(參考RFC3920和RFC3921),但遠(yuǎn)沒有被當(dāng)做真貨使用。如果你遇到一個(gè)正在做IM的朋友,一直在說xmpp,那就不需要交流了。肯定不是好產(chǎn)品。微信和QQ之前都用過xmpp,但是最后放棄了xmpp,說明xmpp有很多缺點(diǎn),消息太大,臃腫浪費(fèi)流量。為了保證穩(wěn)定性,微信采用長鏈接和短鏈接相結(jié)合的方式,例如:

1.兩個(gè)域名

微信分為http模式(短鏈接)和tcp模式(長鏈接),分別處理狀態(tài)協(xié)議和數(shù)據(jù)傳輸協(xié)議。

short . weixin . QQ . comdnscheck(112 . 64 . 237 . 186112 . 64 . 200 . 240)

long . weixin . QQ . comdnscheck(112 . 64 . 237 . 188112 . 64 . 200 . 218)

2.描述

2.1 short.weixin.qq.com

是HTTP協(xié)議的擴(kuò)展,運(yùn)行端口8080,http body是protobuf。

主要用途(界面):

用戶登錄驗(yàn)證;好友關(guān)系(獲取,添加);消息sync (newsync),自有sync機(jī)制;獲取用戶圖像;用戶注銷;行為日志上報(bào)。朋友圈發(fā)表刷新

2.2 long.weixin.qq.com

Tcp長連接,端口8080,類似于微軟activesync二進(jìn)制協(xié)議。

主要用途(界面):

接受/發(fā)送文本消息;接受/發(fā)送語音;接受/發(fā)送圖片;接受/發(fā)送視頻文件等。

以上所有請(qǐng)求都基于tcp長連接。發(fā)送圖片和視頻文件時(shí),分為兩種請(qǐng)求;第一個(gè)請(qǐng)求是縮略圖,第二個(gè)請(qǐng)求是完整數(shù)據(jù)。

2.2.1在數(shù)據(jù)信息方面

增量上傳策略:每次8k左右大小數(shù)據(jù)上傳,服務(wù)器確認(rèn);在繼續(xù)傳輸。

圖像上傳:

先傳縮略圖,傳文本消息,再傳具體文件

下載:

3附錄

3.1用戶登錄認(rèn)證

POST/CGI-bin/micro msg-bin/auth HTTP/1.1

接受:**

用戶代理:Mozilla/4.0

內(nèi)容類型:應(yīng)用程序

主持人:short.weixin.qq.com

內(nèi)容-長度:174

3.3消息同步(新聞同步)

POST/CGI-bin/micro msg-bin/newsync HTTP/1.1

主持人:short.weixin.qq.com

用戶代理:安卓QQMail HTTP客戶端

緩存控制:無緩存

連接:保持活力

內(nèi)容類型:應(yīng)用程序/八位字節(jié)流

接受:**

內(nèi)容-長度:206

3.5用戶注銷

POST/CGI-bin/micro msg-bin/iphone unreg HTTP/1.1

接受:*/*

用戶代理:Mozilla/4.0

內(nèi)容類型:應(yīng)用程序

主持人:short.weixin.qq.com

內(nèi)容-長度:271

3.6行為日志報(bào)告

POST /cgi-bin/stackreport?版本= 240000a7 & ampfilelength=1258&。sum = 7ed a 777 ee 26 a 76 a5 c 93 b 233 eed 504 c7d & amp;reporttype = 1 & ampusername=jolestar HTTP/1.1

內(nèi)容-長度:736

內(nèi)容類型:二進(jìn)制/八進(jìn)制流

主持人:weixin.qq.com

連接:保持活力

用戶代理:Apache-Http client/INavailable(Java 1.4)

從目前互聯(lián)網(wǎng)的發(fā)展來看,IM和視頻(包括IM中的視頻通話)是同一個(gè)方向,應(yīng)該成為互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施,就像瀏覽器一樣。目前IM沒有很好的解決方案,XMPP無法獨(dú)立做業(yè)務(wù)邏輯。從IM的本質(zhì)來說,IM其實(shí)是把一個(gè)消息從一個(gè)地方傳到另一個(gè)地方,和TCP很像。為什么不實(shí)現(xiàn)一個(gè)高級(jí)別的TCP協(xié)議,而是用類似XMPP的唯一ID替換TCP/IP中的IP地址,還有很多其他細(xì)節(jié)可以從TCP協(xié)議中復(fù)制。使用這個(gè)協(xié)議,業(yè)務(wù)邏輯基于現(xiàn)有的HTTP服務(wù)器。比如發(fā)送語音和圖片相當(dāng)于上傳一個(gè)文件,服務(wù)器在處理完文件后發(fā)送一個(gè)特殊的IM消息??蛻舳耸盏絀M消息后,會(huì)根據(jù)IM消息中的url,前往HTTP服務(wù)器獲取語音文件和圖片文件。連接HTTP服務(wù)器和IM服務(wù)器后,很多事情都可以做。但把這兩個(gè)服務(wù)器合并在一起并不是什么好事,否則騰訊不會(huì)有2005年的戰(zhàn)略轉(zhuǎn)型。從目前的情況來看,應(yīng)用除了游戲賺不了多少錢,現(xiàn)在能承載賺錢業(yè)務(wù)的主要還是web。IM賺不到錢,但是離不開,就像一個(gè)地方不修路就發(fā)不了財(cái)一樣。

協(xié)議:

除了上面介紹的XMPP,還有json和Protobuf。

JSON相信大家都知道是什么東西,如果不知道,那可就真的OUT了,GOOGLE一下去。這里就不介紹啥的了。Protobuffer是一個(gè)類似JSON的一個(gè)傳輸協(xié)議,其實(shí)也不能說是協(xié)議,只是一個(gè)數(shù)據(jù)傳輸?shù)臇|西罷了。

JSON和JSON有什么區(qū)別?

跨語言,這是它的優(yōu)勢之一。它自帶編譯器protocol,可以編譯成JAVA,python,C++代碼。暫時(shí)只有這三個(gè)代碼,其他的就先不要想了,然后就可以直接用了,不用寫其他任何代碼。甚至那些被分析過的也已經(jīng)隨之而來了。JSON當(dāng)然是跨語言的,但是這種跨語言是基于編碼的。

莫莫設(shè)計(jì)

在Momo開發(fā)之初,由于規(guī)模較小,30-40W連接(包括安卓后臺(tái)長連接用戶)也使用XMPP;由于XMPP的缺點(diǎn):流量大(基于XML)、不可靠(針對(duì)傳統(tǒng)固定網(wǎng)絡(luò)設(shè)計(jì),沒有考慮WIFI/2G/3G/地鐵/電梯等復(fù)雜網(wǎng)絡(luò)場景)、交互復(fù)雜(登錄需要5-6次,尤其是TLS握手);XMPP消息丟失的根本原因:服務(wù)器和客戶端處于“半封閉”狀態(tài),客戶端處于虛假連接狀態(tài),服務(wù)器無法收到回執(zhí);服務(wù)器端連接層和邏輯層代碼沒有解耦分離,往往會(huì)因?yàn)橹貑?dǎo)致不可用。

消息中繼:

連接層:

邏輯層:

通信協(xié)議設(shè)計(jì):

協(xié)議設(shè)計(jì)要求:

高效:弱網(wǎng)絡(luò)快速的收發(fā)可靠:不會(huì)丟消息易于擴(kuò)展協(xié)議格式:

XMPP/SIP協(xié)議

Redis協(xié)議:

優(yōu)化

連接層(參見通訊服務(wù)器組成):只做消息轉(zhuǎn)發(fā),允許隨時(shí)重啟更新,設(shè)計(jì)原則簡單/異步;單臺(tái)壓測試連接數(shù)70W;現(xiàn)狀:1.5億用戶,月活5000W+,連接數(shù)1200W+;邏輯層(參見通訊服務(wù)器組成):用戶會(huì)話驗(yàn)證即登陸、消息存取、異步隊(duì)列采用私有通訊協(xié)議,目標(biāo):高效,弱網(wǎng)絡(luò)快速收發(fā);可靠:不會(huì)丟消息;易于擴(kuò)展;參考協(xié)議格式:REDIS協(xié)議;參見協(xié)議格式、基于隊(duì)列的消息協(xié)議、基于隊(duì)列的交互、基于版本號(hào)的消息協(xié)議、基于版本號(hào)的交互等;核心的長連接只用于傳輸輕量的實(shí)時(shí)數(shù)據(jù),圖片、語音等都開新的TCP或HTTP連接;

一切準(zhǔn)備就緒后,最重要的是監(jiān)控,寫一個(gè)APP檢查所有的運(yùn)行狀態(tài),每天觀察。

如何選擇最優(yōu)路線,即智能路由。

二、智能路由和連接策略

多端口、雙協(xié)議支持應(yīng)對(duì)移動(dòng)網(wǎng)關(guān)代理的端口限制支持TCP、HTTP兩種協(xié)議根據(jù)備選IP列表進(jìn)行并發(fā)測速(IP+端口+協(xié)議)后端根據(jù)終端連接情況,定時(shí)更新終端的備選IP列表終端在連接空閑時(shí)上報(bào)測速數(shù)據(jù),便于后端決策TCP協(xié)議不通,自動(dòng)切換到http優(yōu)先使用最近可用IP并發(fā)測速,根據(jù)終端所處的位置下發(fā)多組IP、PORT,只用IP,不用域名手機(jī)上的DNS50%不準(zhǔn)負(fù)載均衡器(LVS...)的問題– 單點(diǎn)失效單點(diǎn)性能瓶頸負(fù)載均衡從客戶端開始做起? 域名負(fù)載的問題域名系統(tǒng)不可靠– 更新延遲大

WNS(無線網(wǎng)絡(luò)服務(wù))

1解決移動(dòng)互聯(lián)網(wǎng)發(fā)展中的常見問題:

渠道:數(shù)據(jù)交互、大數(shù)據(jù)上傳、推送

網(wǎng)絡(luò)連接:管理大量長鏈接,鏈接不可用,速度慢,分布在很多地方

運(yùn)營支持:大規(guī)模監(jiān)控和簡化問題定位

登錄&:安全性:登錄身份驗(yàn)證和頻率控制

移動(dòng)互聯(lián)網(wǎng)的特點(diǎn):

1.高延遲:建立通道需要時(shí)間(高RTT)

2.低寬帶高丟包

3.多運(yùn)營商(電信、移動(dòng)、聯(lián)通等。)

4.復(fù)雜網(wǎng)絡(luò)

-2G,3G,4G,wifi .cmwap,cmnet .。

-網(wǎng)關(guān)限制:協(xié)議、端口

5.用戶流動(dòng)性高,互聯(lián)網(wǎng)環(huán)境復(fù)雜

WNS績效指標(biāo):

1.開發(fā)時(shí)間:歷史一年半

2.鏈接成功率-99.9%

3.極端網(wǎng)絡(luò)環(huán)境下的成功率——由于普通應(yīng)用

4.崩潰率-0.02%(崩潰次數(shù)/登錄用戶)

微信后臺(tái)系統(tǒng)架構(gòu)

背景:

一、分布式問題的收斂性

后臺(tái)邏輯模塊以邏輯為主,發(fā)展較快

讀取過時(shí)的數(shù)據(jù)可能是一個(gè)痛點(diǎn)

需要看到一致的數(shù)據(jù)

b、內(nèi)部定義

數(shù)據(jù)有兩個(gè)以上的副本

如果更改成功提交,舊數(shù)據(jù)將不會(huì)返回

扣除:

1添加數(shù)據(jù)

2序列號(hào)生成器,部分序列

約束:只能有一個(gè)客戶端操作

客戶有能力解決沖突

問題轉(zhuǎn)移:如何分發(fā)客戶端?

3修改集群中某個(gè)鍵的值

1)掩護(hù)他

2)根據(jù)值的內(nèi)容進(jìn)行修改

如果值=1,則值:=2

一般解決方案:

1)paxos算法

工程難度

一切都是可控的

分布式算法設(shè)計(jì):

2)法定算法(2011)

然后操作一個(gè)鍵

這是一個(gè)系統(tǒng)約束

類似Paxos的方案,簡化

每次變更的選擇(按鍵)

算法過程

提議/改變/同步/廣播

系統(tǒng)結(jié)構(gòu)

寫過程

復(fù)制和。碎片

稱重點(diǎn)

自主、負(fù)載平衡、擴(kuò)散控制

復(fù)制->;關(guān)系

容災(zāi)偏移

同一城市(上海)的大多數(shù)人幸存了下來

三園(獨(dú)立供電,獨(dú)立)

碎片

一組KV6是一個(gè)單元

1.手動(dòng)階段

局部擴(kuò)張,影響收斂9

2.均勻分布,制作分段hash32(字符串)

雙重?cái)U(kuò)張

3一致性哈希

具體實(shí)現(xiàn)?

1.業(yè)務(wù)面快速發(fā)展

存儲(chǔ)需要提供強(qiáng)大的一致性

豐富的數(shù)據(jù)模型支持(結(jié)構(gòu)化、類似于SQL千伏)

條件閱讀,條件寫作

2業(yè)務(wù)增長迅速,系統(tǒng)應(yīng)該可以方便的橫向擴(kuò)展

3設(shè)備故障/短期節(jié)點(diǎn)有效性成為常態(tài),容災(zāi)自動(dòng)化,主碑無需人工干預(yù)即可書寫

4個(gè)小數(shù)據(jù)

存儲(chǔ)模型

純記憶

比特卡什

小桌系統(tǒng)

LSM樹

小桌系統(tǒng)

1、解決放大問題

2.數(shù)據(jù)根據(jù)變化進(jìn)行聚合存儲(chǔ)

3、受影響1

ChangeTable

(1+2+。。。。+n-1+總計(jì))/n

4.拆分和合并

數(shù)據(jù)流

1.自動(dòng)遷移

2.節(jié)點(diǎn)同時(shí)充當(dāng)代理

3.合并磁盤io

同步流量

1.數(shù)據(jù)與操作

2.冪等的

3.保證策略

通信包數(shù)量

1.動(dòng)態(tài)合并

100K qps

200%-10%

3.權(quán)衡和估計(jì)

設(shè)計(jì)要點(diǎn)

1.吞吐量

2.非同步化

3.復(fù)雜

4、libco

自動(dòng)修理系統(tǒng)

1.不要讓錯(cuò)誤累積

2.全掃描

比特桶的一些變化

1.存儲(chǔ)容量極限

2.全部記憶

1.《im軟件 微信、陌陌等著名IM軟件設(shè)計(jì)架構(gòu)詳解》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。

2.《im軟件 微信、陌陌等著名IM軟件設(shè)計(jì)架構(gòu)詳解》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/yule/1215805.html

上一篇

王昭君嫁過幾個(gè)丈夫

下一篇

項(xiàng)羽為什么放劉邦

北京汽車指標(biāo) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

北京汽車指標(biāo) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

2月25日上午,北京小公共汽車指標(biāo)辦公室發(fā)布2019年首個(gè)抽獎(jiǎng)數(shù)據(jù)。按照規(guī)定,今年5.4萬輛個(gè)人新能源乘用車的指標(biāo)將在此期間配置,其余獲批的有效申請(qǐng)代碼將繼續(xù)按照規(guī)定等待。 經(jīng)審核,截至2019年2月8日24: 00,普通乘用車指標(biāo)有效代碼31...

北京小客車指標(biāo) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

北京小客車指標(biāo) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

2月25日上午,北京小公共汽車指標(biāo)辦公室發(fā)布2019年首個(gè)抽獎(jiǎng)數(shù)據(jù)。按照規(guī)定,今年5.4萬輛個(gè)人新能源乘用車的指標(biāo)將在此期間配置,其余獲批的有效申請(qǐng)代碼將繼續(xù)按照規(guī)定等待。 經(jīng)審核,截至2019年2月8日24: 00,普通乘用車指標(biāo)有效代碼31...

北京市小汽車搖號(hào) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

北京市小汽車搖號(hào) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

2月25日上午,北京小公共汽車指標(biāo)辦公室發(fā)布2019年首個(gè)抽獎(jiǎng)數(shù)據(jù)。按照規(guī)定,今年5.4萬輛個(gè)人新能源乘用車的指標(biāo)將在此期間配置,其余獲批的有效申請(qǐng)代碼將繼續(xù)按照規(guī)定等待。 經(jīng)審核,截至2019年2月8日24: 00,普通乘用車指標(biāo)有效代碼31...

北京小客車 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

北京小客車 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

2月25日上午,北京小公共汽車指標(biāo)辦公室發(fā)布2019年首個(gè)抽獎(jiǎng)數(shù)據(jù)。按照規(guī)定,今年5.4萬輛個(gè)人新能源乘用車的指標(biāo)將在此期間配置,其余獲批的有效申請(qǐng)代碼將繼續(xù)按照規(guī)定等待。 經(jīng)審核,截至2019年2月8日24: 00,普通乘用車指標(biāo)有效代碼31...

北京搖號(hào)官網(wǎng) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

北京搖號(hào)官網(wǎng) 北京市小客車指標(biāo)2019年第一期搖號(hào)數(shù)據(jù)出爐啦!

2月25日上午,北京小公共汽車指標(biāo)辦公室發(fā)布2019年首個(gè)抽獎(jiǎng)數(shù)據(jù)。按照規(guī)定,今年5.4萬輛個(gè)人新能源乘用車的指標(biāo)將在此期間配置,其余獲批的有效申請(qǐng)代碼將繼續(xù)按照規(guī)定等待。 經(jīng)審核,截至2019年2月8日24: 00,普通乘用車指標(biāo)有效代碼31...

泗水招聘信息最新消息 2019濟(jì)寧泗水企事業(yè)單位招聘信息

泗水招聘信息最新消息 2019濟(jì)寧泗水企事業(yè)單位招聘信息

2019年濟(jì)寧泗水縣企事業(yè)單位招聘信息 招聘公告 2019年濟(jì)寧泗水縣國有企業(yè)公開招聘員工公告 報(bào)名時(shí)間:2019年6月10日-6月12日;上午:9:00-12:00,下午:14:00-18:00 筆試內(nèi)容:公共基礎(chǔ)知識(shí)。 面試內(nèi)容:采用結(jié)構(gòu)化...

德云社直播 德云社綱絲節(jié)傳來壞消息,直播被改為錄播,演出內(nèi)容要全面審查!

福田收割機(jī) 我的用戶,我來寵你。麥?zhǔn)赵诩?,福田收割機(jī)機(jī)手要注意下面的一波操作啦

  • 福田收割機(jī) 我的用戶,我來寵你。麥?zhǔn)赵诩?,福田收割機(jī)機(jī)手要注意下面的一波操作啦
  • 福田收割機(jī) 我的用戶,我來寵你。麥?zhǔn)赵诩矗L锸崭顧C(jī)機(jī)手要注意下面的一波操作啦
  • 福田收割機(jī) 我的用戶,我來寵你。麥?zhǔn)赵诩?,福田收割機(jī)機(jī)手要注意下面的一波操作啦