欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 探究京東咚咚架構(gòu)演進(jìn)

探究京東咚咚架構(gòu)演進(jìn)

熱門標(biāo)簽:金蘭灣地圖標(biāo)注app 地圖標(biāo)注不顯示 河北crm外呼系統(tǒng)平臺 周口權(quán)威的不封卡電話外呼系統(tǒng) 外呼系統(tǒng)2273649Z空間 百應(yīng)電話機(jī)器人價值 福州公司外呼系統(tǒng)加盟 南京400電話辦理到易號網(wǎng) 河南語音外呼系統(tǒng)平臺

咚咚是什么?咚咚之于京東相當(dāng)于旺旺之于淘寶,它們都是服務(wù)于買家和賣家的溝通。 自從京東開始為第三方賣家提供入駐平臺服務(wù)后,咚咚也就隨之誕生了。 我們首先看看它誕生之初是什么樣的。

1.0 誕生(2010 - 2011)

為了業(yè)務(wù)的快速上線,1.0 版本的技術(shù)架構(gòu)實(shí)現(xiàn)是非常直接且簡單粗暴的。 如何簡單粗暴法?請看架構(gòu)圖,如下。

1.0 的功能十分簡單,實(shí)現(xiàn)了一個 IM 的基本功能,接入、互通消息和狀態(tài)。 另外還有客服功能,就是顧客接入咨詢時的客服分配,按輪詢方式把顧客分配給在線的客服接待。 用開源 Mina 框架實(shí)現(xiàn)了 TCP 的長連接接入,用 Tomcat Comet 機(jī)制實(shí)現(xiàn)了 HTTP 的長輪詢服務(wù)。 而消息投遞的實(shí)現(xiàn)是一端發(fā)送的消息臨時存放在 Redis 中,另一端拉取的生產(chǎn)消費(fèi)模型。

這個模型的做法導(dǎo)致需要以一種高頻率的方式來輪詢 Redis 遍歷屬于自己連接的關(guān)聯(lián)會話消息。 這個模型很簡單,簡單包括多個層面的意思:理解起來簡單;開發(fā)起來簡單;部署起來也簡單。 只需要一個 Tomcat 應(yīng)用依賴一個共享的 Redis,簡單的實(shí)現(xiàn)核心業(yè)務(wù)功能,并支持業(yè)務(wù)快速上線。

但這個簡單的模型也有些嚴(yán)重的缺陷,主要是效率和擴(kuò)展問題。 輪詢的頻率間隔大小基本決定了消息的延時,輪詢越快延時越低,但輪詢越快消耗也越高。 這個模型實(shí)際上是一個高功耗低效能的模型,因?yàn)椴换钴S的連接在那做高頻率的無意義輪詢。 高頻有多高呢,基本在 100 ms 以內(nèi),你不能讓輪詢太慢,比如超過 2 秒輪一次,人就會在聊天過程中感受到明顯的會話延遲。 隨著在線人數(shù)增加,輪詢的耗時也線性增長,因此這個模型導(dǎo)致了擴(kuò)展能力和承載能力都不好,一定會隨著在線人數(shù)的增長碰到性能瓶頸。

1.0 的時代背景正是京東技術(shù)平臺從 .NET 向 Java 轉(zhuǎn)型的年代,我也正是在這期間加入京東并參與了京東主站技術(shù)轉(zhuǎn)型架構(gòu)升級的過程。 之后開始接手了京東咚咚,并持續(xù)完善這個產(chǎn)品,進(jìn)行了三次技術(shù)架構(gòu)演進(jìn)。

2.0 成長(2012)

我們剛接手時 1.0 已在線上運(yùn)行并支持京東 POP(開放平臺)業(yè)務(wù),之后京東打算組建自營在線客服團(tuán)隊(duì)并落地在成都。 不管是自營還是 POP 客服咨詢業(yè)務(wù)當(dāng)時都起步不久,1.0 架構(gòu)中的性能和效率缺陷問題還沒有達(dá)到引爆的業(yè)務(wù)量級。 而自營客服當(dāng)時還處于起步階段,客服人數(shù)不足,服務(wù)能力不夠,顧客咨詢量遠(yuǎn)遠(yuǎn)超過客服的服務(wù)能力。 超出服務(wù)能力的顧客咨詢,當(dāng)時我們的系統(tǒng)統(tǒng)一返回提示客服繁忙,請稍后咨詢。 這種狀況導(dǎo)致高峰期大量顧客無論怎么刷新請求,都很可能無法接入客服,體驗(yàn)很差。 所以 2.0 重點(diǎn)放在了業(yè)務(wù)功能體驗(yàn)的提升上,如下圖所示。

針對無法及時提供服務(wù)的顧客,可以排隊(duì)或者留言。 針對純文字溝通,提供了文件和圖片等更豐富的表達(dá)方式。 另外支持了客服轉(zhuǎn)接和快捷回復(fù)等方式來提升客服的接待效率。 總之,整個 2.0 就是圍繞提升客服效率和用戶體驗(yàn)。 而我們擔(dān)心的效率問題在 2.0 高速發(fā)展業(yè)務(wù)的時期還沒有出現(xiàn),但業(yè)務(wù)量正在逐漸積累,我們知道它快要爆了。 到 2012 年末,度過雙十一后開始了 3.0 的一次重大架構(gòu)升級。

3.0 爆發(fā)(2013 - 2014)

經(jīng)歷了 2.0 時代一整年的業(yè)務(wù)高速發(fā)展,實(shí)際上代碼規(guī)模膨脹的很快。 與代碼一塊膨脹的還有團(tuán)隊(duì),從最初的 4 個人到近 30 人。 團(tuán)隊(duì)大了后,一個系統(tǒng)多人開發(fā),開發(fā)人員層次不一,規(guī)范難統(tǒng)一,系統(tǒng)模塊耦合重,改動溝通和依賴多,上線風(fēng)險難以控制。 一個單獨(dú) tomcat 應(yīng)用多實(shí)例部署模型終于走到頭了,這個版本架構(gòu)升級的主題就是服務(wù)化。

服務(wù)化的第一個問題如何把一個大的應(yīng)用系統(tǒng)切分成子服務(wù)系統(tǒng)。 當(dāng)時的背景是京東的部署還在半自動化年代,自動部署系統(tǒng)剛起步,子服務(wù)系統(tǒng)若按業(yè)務(wù)劃分太細(xì)太多,部署工作量很大且難管理。 所以當(dāng)時我們不是按業(yè)務(wù)功能分區(qū)服務(wù)的,而是按業(yè)務(wù)重要性級別劃分了 0、1、2 三個級別不同的子業(yè)務(wù)服務(wù)系統(tǒng)。 另外就是獨(dú)立了一組接入服務(wù),針對不同渠道和通信方式的接入端,見下圖。

更細(xì)化的應(yīng)用服務(wù)和架構(gòu)分層方式可見下圖。

這次大的架構(gòu)升級,主要考慮了三個方面:穩(wěn)定性、效率和容量。 做了下面這些事情:

  • 業(yè)務(wù)分級、核心、非核心業(yè)務(wù)隔離
    多機(jī)房部署,流量分流、容災(zāi)冗余、峰值應(yīng)對冗余
    讀庫多源,失敗自動轉(zhuǎn)移
    寫庫主備,短暫有損服務(wù)容忍下的快速切換
    外部接口,失敗轉(zhuǎn)移或快速斷路
    Redis 主備,失敗轉(zhuǎn)移
    大表遷移,MongoDB 取代 MySQL 存儲消息記錄
    改進(jìn)消息投遞模型

前 6 條基本屬于考慮系統(tǒng)穩(wěn)定性、可用性方面的改進(jìn)升級。 這一塊屬于陸續(xù)迭代完成的,承載很多失敗轉(zhuǎn)移的配置和控制功能在上面圖中是由管控中心提供的。 第 7 條主要是隨著業(yè)務(wù)量的上升,單日消息量越來越大后,使用了 MongoDB 來單獨(dú)存儲量最大的聊天記錄。 第 8 條是針對 1.0 版本消息輪詢效率低的改進(jìn),改進(jìn)后的投遞方式如下圖所示:

不再是輪詢了,而是讓終端每次建立連接后注冊接入點(diǎn)位置,消息投遞前定位連接所在接入點(diǎn)位置再推送過去。 這樣投遞效率就是恒定的了,而且很容易擴(kuò)展,在線人數(shù)越多則連接數(shù)越多,只需要擴(kuò)展接入點(diǎn)即可。 其實(shí),這個模型依然還有些小問題,主要出在離線消息的處理上,可以先思考下,我們最后再講。

3.0 經(jīng)過了兩年的迭代式升級,單純從業(yè)務(wù)量上來說還可以繼續(xù)支撐很長時間的增長。 但實(shí)際上到 2014 年底我們面對的不再是業(yè)務(wù)量的問題,而是業(yè)務(wù)模式的變化。 這直接導(dǎo)致了一個全新時代的到來。

4.0 涅槃(2015 至今 )

2014 年京東的組織架構(gòu)發(fā)生了很大變化,從一個公司變成了一個集團(tuán),下設(shè)多個子公司。 原來的商城成為了其中一個子公司,新成立的子公司包括京東金融、京東智能、京東到家、拍拍、海外事業(yè)部等。 各自業(yè)務(wù)范圍不同,業(yè)務(wù)模式也不同,但不管什么業(yè)務(wù)總是需要客服服務(wù)。 如何復(fù)用原來為商城量身訂做的咚咚客服系統(tǒng)并支持其他子公司業(yè)務(wù)快速接入成為我們新的課題。

最早要求接入的是拍拍網(wǎng),它是從騰訊收購的,所以是完全不同的賬戶和訂單交易體系。 由于時間緊迫,我們把為商城訂做的部分剝離,基于 3.0 架構(gòu)對接拍拍又單獨(dú)訂做了一套,并獨(dú)立部署,像下面這樣。

雖然在業(yè)務(wù)要求的時間點(diǎn)前完成了上線,但這樣做也帶來了明顯的問題:

  • 復(fù)制工程,定制業(yè)務(wù)開發(fā),多套源碼維護(hù)成本高
    獨(dú)立部署,至少雙機(jī)房主備外加一個灰度集群,資源浪費(fèi)大

以前我們都是面向業(yè)務(wù)去架構(gòu)系統(tǒng),如今新的業(yè)務(wù)變化形勢下我們開始考慮面向平臺去架構(gòu),在統(tǒng)一平臺上跑多套業(yè)務(wù),統(tǒng)一源碼,統(tǒng)一部署,統(tǒng)一維護(hù)。 把業(yè)務(wù)服務(wù)繼續(xù)拆分,剝離出最基礎(chǔ)的 IM 服務(wù),IM 通用服務(wù),客服通用服務(wù),而針對不同的業(yè)務(wù)特殊需求做最小化的定制服務(wù)開發(fā)。 部署方式則以平臺形式部署,不同的業(yè)務(wù)方的服務(wù)跑在同一個平臺上,但數(shù)據(jù)互相隔離。 服務(wù)繼續(xù)被拆分的更微粒化,形成了一組服務(wù)矩陣(見下圖)。

而部署方式,只需要在雙機(jī)房建立兩套對等集群,并另外建一個較小的灰度發(fā)布集群即可,所有不同業(yè)務(wù)都運(yùn)行在統(tǒng)一平臺集群上,如下圖。

更細(xì)粒度的服務(wù)意味著每個服務(wù)的開發(fā)更簡單,代碼量更小,依賴更少,隔離穩(wěn)定性更高。 但更細(xì)粒度的服務(wù)也意味著更繁瑣的運(yùn)維監(jiān)控管理,直到今年公司內(nèi)部彈性私有云、緩存云、消息隊(duì)列、部署、監(jiān)控、日志等基礎(chǔ)系統(tǒng)日趨完善, 使得實(shí)施這類細(xì)粒度劃分的微服務(wù)架構(gòu)成為可能,運(yùn)維成本可控。 而從當(dāng)初 1.0 的 1 種應(yīng)用進(jìn)程,到 3.0 的 6、7 種應(yīng)用進(jìn)程,再到 4.0 的 50+ 更細(xì)粒度的不同種應(yīng)用進(jìn)程。 每種進(jìn)程再根據(jù)承載業(yè)務(wù)流量不同分配不同的實(shí)例數(shù),真正的實(shí)例進(jìn)程數(shù)會過千。 為了更好的監(jiān)控和管理這些進(jìn)程,為此專門定制了一套面向服務(wù)的運(yùn)維管理系統(tǒng),見下圖。

統(tǒng)一服務(wù)運(yùn)維提供了實(shí)用的內(nèi)部工具和庫來幫助開發(fā)更健壯的微服務(wù)。 包括中心配置管理,流量埋點(diǎn)監(jiān)控,數(shù)據(jù)庫和緩存訪問,運(yùn)行時隔離,如下圖所示是一個運(yùn)行隔離的圖示:

細(xì)粒度的微服務(wù)做到了進(jìn)程間隔離,嚴(yán)格的開發(fā)規(guī)范和工具庫幫助實(shí)現(xiàn)了異步消息和異步 HTTP 來避免多個跨進(jìn)程的同步長調(diào)用鏈。 進(jìn)程內(nèi)部通過切面方式引入了服務(wù)增強(qiáng)容器 Armor 來隔離線程, 并支持進(jìn)程內(nèi)的單獨(dú)業(yè)務(wù)降級和同步轉(zhuǎn)異步化執(zhí)行。而所有這些工具和庫服務(wù)都是為了兩個目標(biāo):

  • 讓服務(wù)進(jìn)程運(yùn)行時狀態(tài)可見
    讓服務(wù)進(jìn)程運(yùn)行時狀態(tài)可被管理和改變

最后我們回到前文留下的一個懸念,就是關(guān)于消息投遞模型的缺陷。 一開始我們在接入層檢測到終端連接斷開后,消息無法投遞,再將消息緩存下來,等終端重連接上來再拉取離線消息。 這個模型在移動時代表現(xiàn)的很不好,因?yàn)橐苿泳W(wǎng)絡(luò)的不穩(wěn)定性,導(dǎo)致經(jīng)常斷鏈后重連。 而準(zhǔn)確的檢測網(wǎng)絡(luò)連接斷開是依賴一個網(wǎng)絡(luò)超時的,導(dǎo)致檢測可能不準(zhǔn)確,引發(fā)消息假投遞成功。 新的模型如下圖所示,它不再依賴準(zhǔn)確的網(wǎng)絡(luò)連接檢測,投遞前待確認(rèn)消息 id 被緩存,而消息體被持久存儲。 等到終端接收確認(rèn)返回后,該消息才算投妥,未確認(rèn)的消息 id 再重新登陸后或重連接后作為離線消息推送。 這個模型不會產(chǎn)生消息假投妥導(dǎo)致的丟失,但可能導(dǎo)致消息重復(fù),只需由客戶終端按消息 id 去重即可。

京東咚咚誕生之初正是京東技術(shù)轉(zhuǎn)型到 Java 之時,經(jīng)歷這些年的發(fā)展,取得了很大的進(jìn)步。 從草根走向?qū)I(yè),從弱小走向規(guī)模,從分散走向統(tǒng)一,從雜亂走向規(guī)范。 本文主要重心放在了幾年來咚咚架構(gòu)演進(jìn)的過程,技術(shù)架構(gòu)單獨(dú)拿出來看我認(rèn)為沒有絕對的好與不好, 技術(shù)架構(gòu)總是要放在彼時的背景下來看,要考慮業(yè)務(wù)的時效價值、團(tuán)隊(duì)的規(guī)模和能力、環(huán)境基礎(chǔ)設(shè)施等等方面。 架構(gòu)演進(jìn)的生命周期適時匹配好業(yè)務(wù)的生命周期,才可能發(fā)揮最好的效果。

標(biāo)簽:長治 臺州 瀘州 南京 呼和浩特 撫州 自貢 贛州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《探究京東咚咚架構(gòu)演進(jìn)》,本文關(guān)鍵詞  探究,京東,咚咚,架構(gòu),演進(jìn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《探究京東咚咚架構(gòu)演進(jìn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于探究京東咚咚架構(gòu)演進(jìn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日韩理论片在线| 成人免费视频视频在线观看免费| 中文字幕一二三区| 希岛爱理中文字幕| 中文字幕高清不卡| 国产传媒欧美日韩成人| 一级黄色录像毛片| 久久久精品中文字幕麻豆发布| 免费不卡在线观看| 久久久久亚洲av无码a片| 精品国产伦一区二区三区观看体验 | 懂色av蜜臀av粉嫩av永久| 久久久五月婷婷| 国产曰批免费观看久久久| 亚洲一级黄色录像| 国产精品视频九色porn| 99这里都是精品| 欧美撒尿777hd撒尿| 香蕉影视欧美成人| 玖玖爱在线观看| 久久久久久久综合狠狠综合| 国产激情视频一区二区三区欧美| 国产日产精品一区二区三区的介绍| 国产精品天天看| www.日韩av| 欧美日韩久久一区| 秋霞电影网一区二区| xxxxx99| 专区另类欧美日韩| 亚洲AV成人精品| 中国一级片在线观看| 26uuu欧美日本| 国产福利一区二区三区视频| 日本黄色免费片| 亚洲综合在线电影| 97人妻精品一区二区三区免| 精品国产sm最大网站免费看| 国产精品一区三区| 欧洲生活片亚洲生活在线观看| 亚洲成人一区二区在线观看| 97伦伦午夜电影理伦片| 欧美激情一区二区三区| 91蝌蚪porny九色| 欧美一二三在线| 国产精品一区2区| 欧美午夜理伦三级在线观看| 麻豆精品在线观看| 日韩视频中文字幕在线观看| 亚洲福利一区二区三区| www亚洲色图| 亚洲精品伦理在线| 播金莲一级淫片aaaaaaa| 国产精品看片你懂得| 日本55丰满熟妇厨房伦| 精品少妇一区二区三区在线播放| 懂色av噜噜一区二区三区av| 911精品国产一区二区在线| 国产麻豆精品久久一二三| 欧洲国内综合视频| 精品一区二区三区久久| 在线免费视频一区二区| 久久国产乱子精品免费女| 色婷婷狠狠综合| 麻豆一区二区在线| 在线亚洲一区观看| 韩国av一区二区三区四区| 欧美系列日韩一区| 国产一区二区久久| 欧美精品亚洲一区二区在线播放| 国产乱码精品一区二区三区av| 欧美日韩中字一区| 国产成人在线看| 日韩精品中文字幕在线一区| 国产成人av电影在线播放| 91精品国产品国语在线不卡| 成人性生交大片免费看中文网站| 日韩一本二本av| 91在线porny国产在线看| 久久久久久麻豆| 亚洲精品中文字幕在线播放| 中文字幕一区二区三区蜜月| a级片在线观看| 性做久久久久久| 色婷婷亚洲综合| 国产在线国偷精品免费看| 欧美一级精品大片| 制服下的诱惑暮生| 国产精品久久久久久久久动漫 | 久久综合资源网| 一级黄色电影片| 中文字幕日本乱码精品影院| 国产精品久久久久久成人| 日韩国产精品久久久久久亚洲| 91久久精品国产91性色tv| 国产精品一区一区| 精品国免费一区二区三区| 国产黑丝在线观看| 一区二区久久久| 一本大道av伊人久久综合| 国产精品影视在线观看| 精品欧美黑人一区二区三区| 日本一区二区在线观看视频| 亚洲激情男女视频| 中文字幕av免费在线观看| 国产福利一区在线| 久久精品视频一区| 中文字幕免费在线看线人动作大片| 五月婷婷欧美视频| 欧美男生操女生| 日本中文字幕有码| 亚洲精品日韩一| 日本高清不卡一区| 欧美大度的电影原声| 成年人看片网站| 亚洲六月丁香色婷婷综合久久| 久草福利资源在线| 国产成人鲁色资源国产91色综 | 动漫美女无遮挡免费| 亚洲精品国产成人久久av盗摄| av女名字大全列表| 成人18精品视频| 亚洲日本韩国一区| 91福利在线看| 波多野结衣电影免费观看| 一区二区三区在线免费播放| 欧美在线免费观看亚洲| 韩国三级hd中文字幕有哪些| 亚洲综合一区在线| 欧美久久一二区| 免费成人蒂法网站| 美国一区二区三区在线播放| 久久综合九色综合97婷婷女人| 亚洲成人黄色av| 国产伦精品一区二区三区免费| 国产婷婷色一区二区三区在线| 日本美女黄色一级片| 成人午夜在线视频| 亚洲女女做受ⅹxx高潮| 欧美视频在线观看一区二区| 人妻 丝袜美腿 中文字幕| 香港成人在线视频| 日韩女优毛片在线| 在线免费观看视频| 成人激情视频网站| 亚洲与欧洲av电影| 日韩一级片在线播放| 国产91丝袜美女在线播放| 福利电影一区二区| 亚洲女厕所小便bbb| 欧美一区二区三区四区五区 | 国产福利一区在线观看| 自拍偷自拍亚洲精品播放| 欧美色偷偷大香| aaaaaav| 国产毛片精品一区| 亚洲免费观看高清| 91精品免费观看| 人妻熟人中文字幕一区二区| 成人h动漫精品一区二| 亚洲国产视频a| 欧美成人精品福利| 中文字幕人妻一区二| 麻豆短视频在线观看| 九色综合国产一区二区三区| 国产精品美日韩| 欧美精品丝袜中出| 黄色av片三级三级三级免费看| 不卡在线视频中文字幕| 舔着乳尖日韩一区| 国产欧美日韩在线视频| 欧美在线观看禁18| www.中文字幕av| 成人av影视在线观看| 亚洲美女免费视频| 色94色欧美sute亚洲13| 色婷婷免费视频| 国产成人av资源| 婷婷综合另类小说色区| 国产三级欧美三级| 欧美色成人综合| 国产精品www爽爽爽| 一区二区三区人妻| 国产在线视频一区二区三区| 一区二区三区在线播| 精品国产1区二区| 欧美最新大片在线看| 蜜桃久久精品成人无码av| 又黄又爽又色的视频| 精品一区二区三区在线播放| 一区二区三区四区在线免费观看| 欧美成人a视频| 在线精品视频免费播放| 国产99在线 | 亚洲| 国产一线在线观看| 成人性视频免费网站| 久久精品国产精品亚洲精品| 一区二区三区高清| 欧美激情自拍偷拍| 日韩精品一区二区三区四区视频| 色综合色综合色综合|