精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

這套分布式IM即時(shí)通訊系統(tǒng)如何寫到簡(jiǎn)歷上?我給你整理好了!

開發(fā) 架構(gòu)
拿小本子記錄下,后續(xù)可以寫到簡(jiǎn)歷上的整合了OpenAI大模型的分布式IM即時(shí)通訊系統(tǒng),從此,簡(jiǎn)歷上又多了一個(gè)可以拿的出手的高并發(fā)、高性能、高可用、可監(jiān)控、可預(yù)警、可伸縮,支持無限擴(kuò)展的真實(shí)業(yè)務(wù)場(chǎng)景項(xiàng)目。

大家好,我是冰河~~

分布式IM即時(shí)通訊系統(tǒng)本質(zhì)上就是對(duì)線上聊天和用戶的管理,針對(duì)聊天本身來說,最核心的需求就是:發(fā)送文字、圖片、文件、語音、視頻、消息緩存、消息存儲(chǔ)、消息未讀、已讀、撤回,離線消息、歷史消息、單聊、群聊,多端同步,以及其他一些需求。

對(duì)用戶管理來說,存在的需求包含:添加好友、查看好友列表、刪除好友、查看好友信息、創(chuàng)建群聊、加入群聊、查看群成員信息、退出群聊、修改群昵稱、拉人進(jìn)群、踢人出群、解散群聊、填寫群公告、修改群備注以及其他用戶相關(guān)的需求等。

注:拿小本子記錄下,后續(xù)可以寫到簡(jiǎn)歷上的整合了OpenAI大模型的分布式IM即時(shí)通訊系統(tǒng),從此,簡(jiǎn)歷上又多了一個(gè)可以拿的出手的高并發(fā)、高性能、高可用、可監(jiān)控、可預(yù)警、可伸縮,支持無限擴(kuò)展的真實(shí)業(yè)務(wù)場(chǎng)景項(xiàng)目。

一、前言

為了能夠讓小伙伴們更好的理解分布式IM即時(shí)通訊系統(tǒng)的設(shè)計(jì),我們站在架構(gòu)師的角度,在充分了解系統(tǒng)需求,業(yè)務(wù)流程和技術(shù)流程后,從全局視角為系統(tǒng)設(shè)定方案目標(biāo),對(duì)技術(shù)方案進(jìn)行選型,對(duì)系統(tǒng)進(jìn)行總體架構(gòu)設(shè)計(jì)和分層架構(gòu)設(shè)計(jì),并梳理清楚發(fā)送消息的交互鏈路、單聊和群聊的交互鏈路。以方便各位小伙伴將分布式IM即時(shí)通訊系統(tǒng)寫到自己的簡(jiǎn)歷中,增強(qiáng)自己的競(jìng)爭(zhēng)力。

二、方案目標(biāo)

在進(jìn)行技術(shù)選型與總體架構(gòu)設(shè)計(jì)之前,需要明確一個(gè)事項(xiàng),就是系統(tǒng)無論采用哪種方案,采用哪種架構(gòu)設(shè)計(jì)都需要明確這種方案的業(yè)務(wù)目標(biāo)、技術(shù)目標(biāo)和架構(gòu)目標(biāo),并在研發(fā)過程中不斷評(píng)估系統(tǒng)的總體性能表現(xiàn),發(fā)現(xiàn)系統(tǒng)瓶頸并不斷進(jìn)行優(yōu)化。

總體上,我們搭建和開發(fā)的分布式IM即時(shí)通訊系統(tǒng),需要滿足如下方案目標(biāo)。

  • 業(yè)務(wù)目標(biāo):滿足需求設(shè)計(jì)篇章中的各類需求場(chǎng)景。
  • 技術(shù)目標(biāo):支持無限擴(kuò)容,百萬用戶同時(shí)在線聊天。
  • 架構(gòu)目標(biāo):高并發(fā)、高性能、高可用、可監(jiān)控、可預(yù)警、可伸縮,支持無限擴(kuò)展。

三、技術(shù)選型

在技術(shù)選型上,除了采用SpringBoot等基礎(chǔ)框架外,也會(huì)采用容器化方案。同時(shí),考慮到為了盡量降低技術(shù)門檻,在整個(gè)分布式IM即時(shí)通訊系統(tǒng)的技術(shù)選型中,主要采用市面上比較流行的技術(shù)框架和方案,具體選型如下所示。

  • 開發(fā)框架:SpringBoot、SpringCloud、SpringCloud Alibaba、Dubbo。
  • 緩存:Redis分布式緩存+Guava本地緩存。
  • 數(shù)據(jù)庫:MySQL、TiDB、HBase。
  • 流量網(wǎng)關(guān):OpenResty+Lua。
  • 業(yè)務(wù)網(wǎng)關(guān):SpringCloud Gateway + Sentinel。
  • 持久層框架:MyBatis、Mybatis-Plus。
  • 服務(wù)配置、服務(wù)注冊(cè)與發(fā)現(xiàn):Nacos。
  • 消息中間件:RocketMQ。
  • 網(wǎng)絡(luò)通信:Netty。
  • 文件存儲(chǔ):Minio。
  • 日志可視化治理:ELK。
  • 容器化管理:Swarm、Portainer。
  • 監(jiān)控:Prometheus、Grafana。
  • 前端:Vue。
  • 單元測(cè)試:Junit。
  • 基準(zhǔn)測(cè)試:JMH。
  • 壓力測(cè)試:JMeter。

四、系統(tǒng)初步架構(gòu)設(shè)計(jì)

對(duì)于IM即時(shí)通訊系統(tǒng)來說,涵蓋了即時(shí)通訊后端服務(wù)、大后端平臺(tái)、SDK接入服務(wù)、OpenAI接入服務(wù)、大前端UI,我相信不少小伙伴多多少少能夠畫出IM即時(shí)通訊系統(tǒng)的架構(gòu)圖,大致如圖1-1所示。

圖片

其實(shí),這種這種架構(gòu)設(shè)計(jì)也比較常見,在這種架構(gòu)設(shè)計(jì)中,Kong/Openresty/Nginx只做負(fù)載均衡和反向代理,研發(fā)人員更多的是關(guān)注業(yè)務(wù)層和基礎(chǔ)層的開發(fā),流量比較小時(shí),這種架構(gòu)設(shè)計(jì)一般不會(huì)有什么問題。但是一旦流量比較大,用戶調(diào)用后端平臺(tái)的接口發(fā)送消息時(shí),即時(shí)通訊SDK同步調(diào)用即時(shí)通訊服務(wù)的接口就會(huì)出現(xiàn)性能問題。

因?yàn)槊總€(gè)終端同時(shí)只能與一個(gè)IM即時(shí)通訊服務(wù)實(shí)例建立連接,如果大量的用戶終端恰好都與一個(gè)IM即時(shí)通訊服務(wù)建立連接,那即時(shí)通訊SDK頻繁同步調(diào)用同一個(gè)IM即時(shí)通訊服務(wù)的接口就會(huì)出現(xiàn)性能瓶頸。此時(shí),出現(xiàn)性能瓶頸時(shí),不僅僅會(huì)影響到IM即時(shí)通訊服務(wù),也會(huì)對(duì)后端平臺(tái)接收請(qǐng)求的業(yè)務(wù)造成一定的影響。

五、系統(tǒng)架構(gòu)設(shè)計(jì)優(yōu)化

既然圖1-1所示的架構(gòu)設(shè)計(jì)存在性能瓶頸,那我們?nèi)绾芜M(jìn)行優(yōu)化呢?為此我們?cè)谌?-1的基礎(chǔ)上進(jìn)行了優(yōu)化,優(yōu)化后的架構(gòu)如圖1-2所示。

圖片

對(duì)比圖1-1和圖1-2可以看出,在屏蔽掉技術(shù)實(shí)現(xiàn)細(xì)節(jié)的前提下,我們將對(duì)業(yè)務(wù)的校驗(yàn)和流量管控進(jìn)行前置化,放大Kong/OpenResty/Nginx的職責(zé),使得這些軟件不僅具備反向代理和負(fù)載均衡的功能,還能實(shí)現(xiàn)限流、黑白名單、流量管控、業(yè)務(wù)校驗(yàn)等功能。

也就是說,在這種架構(gòu)模式下,我們充分發(fā)揮了整個(gè)分布式IM即時(shí)通訊系統(tǒng)的入口職責(zé),充分利用Kong/OpenResty/Nginx的高并發(fā)、高吞吐量的能力,盡量將大部分無效請(qǐng)求擋在整個(gè)系統(tǒng)之外。例如,用戶在沒登錄系統(tǒng)的前提下,就嘗試調(diào)用發(fā)送消息、添加好友、添加群組等等接口。這樣會(huì)大大減輕后臺(tái)平臺(tái)的業(yè)務(wù)壓力。

除了在Kong/OpenResty/Nginx中實(shí)現(xiàn)限流、黑白名單、流量管控、業(yè)務(wù)校驗(yàn)等功能外,我們還引入了業(yè)務(wù)網(wǎng)關(guān)集群,實(shí)現(xiàn)限流、降級(jí)、熔斷、流控、校驗(yàn)、鑒權(quán)等功能,進(jìn)一步保證下游系統(tǒng)的穩(wěn)定性和安全。

為了解決大量用戶終端恰好連接到同一個(gè)IM即時(shí)通訊服務(wù)實(shí)例,IM即時(shí)通訊SDK頻繁調(diào)用同一個(gè)IM即時(shí)通訊服務(wù)實(shí)例的接口造成的性能問題。我們?cè)贗M即時(shí)通訊服務(wù)SDK與IM即時(shí)通訊服務(wù)之間引入了RocketMQ集群。

IM即時(shí)通訊服務(wù)集群中的每一個(gè)IM即時(shí)通訊服務(wù)實(shí)例在集群中都有一個(gè)唯一的ID,并且每個(gè)IM即時(shí)通訊服務(wù)實(shí)例在啟動(dòng)后,只會(huì)監(jiān)聽RocketMQ中與自身ID相關(guān)的Topic。這樣每個(gè)IM即時(shí)通訊服務(wù)只會(huì)收到與自身ID相關(guān)的Topic中的消息,不會(huì)接收所有的消息。

當(dāng)用戶登錄系統(tǒng)后,就會(huì)與IM即時(shí)通訊服務(wù)建立長(zhǎng)連接,并且會(huì)以用戶ID和終端為Key,以IM即時(shí)通訊服務(wù)的ID為value,將其存儲(chǔ)到分布式緩存中。同時(shí),會(huì)以用戶ID和終端為Key,以用戶終端與IM即時(shí)通訊服務(wù)建立的長(zhǎng)連接為value,將其存儲(chǔ)到IM即時(shí)通訊服務(wù)本地內(nèi)存中。

當(dāng)用戶調(diào)用后端平臺(tái)的接口發(fā)消息時(shí),會(huì)帶上目標(biāo)用戶的ID,并且在IM即時(shí)通訊SDK中會(huì)指定用戶登錄的終端設(shè)備,最終會(huì)通過IM即時(shí)通訊SDK向RocketMQ發(fā)送消息。

此時(shí)IM即時(shí)通訊SDK會(huì)根據(jù)目標(biāo)用戶ID和終端從分布式緩存中獲取目標(biāo)用戶連接的IM即時(shí)通訊服務(wù)的ID,并向此ID相關(guān)的Topic發(fā)送消息。此時(shí)與目標(biāo)用戶建立長(zhǎng)連接的IM即時(shí)通訊服務(wù)就會(huì)接收到RocketMQ中的消息,隨后根據(jù)用戶ID和終端從本地緩存中獲取到與用戶終端建立的長(zhǎng)連接,并基于此長(zhǎng)連接向用戶推送消息。

另外,在實(shí)際實(shí)現(xiàn)中,為了避免大量用戶同時(shí)只連接IM即時(shí)通訊服務(wù)集群中的某一個(gè)服務(wù)實(shí)例,會(huì)對(duì)用戶連接的IP、瀏覽器指紋、手機(jī)設(shè)備等做Hash和取模運(yùn)算,使其盡量均勻分布到集群中的每一個(gè)服務(wù)實(shí)例上。

那么問題來了:這種架構(gòu)設(shè)計(jì)還有進(jìn)一步優(yōu)化的空間嗎?

六、容器化架構(gòu)設(shè)計(jì)

為進(jìn)一步增強(qiáng)分布式IM即時(shí)通訊系統(tǒng)的性能、可用性和彈性伸縮能力,我們可以對(duì)分布式IM即時(shí)通訊系統(tǒng)進(jìn)行容器化架構(gòu)設(shè)計(jì),如圖1-3所示。

圖片

可以看到,我們對(duì)分布式IM即時(shí)通訊系統(tǒng)的架構(gòu)設(shè)計(jì)進(jìn)行了進(jìn)一步優(yōu)化,采用了容器化架構(gòu)設(shè)計(jì)。在原有架構(gòu)的基礎(chǔ)上,我們進(jìn)行了如下改進(jìn)和優(yōu)化。

(1)基礎(chǔ)支撐服務(wù)

基礎(chǔ)支撐服務(wù)會(huì)由各種基礎(chǔ)中間件、數(shù)據(jù)存儲(chǔ)服務(wù)、以及監(jiān)控服務(wù)實(shí)現(xiàn),包含:MySQL數(shù)據(jù)庫、TiDB數(shù)據(jù)庫、HBase、Redis緩存、RocketMQ消息隊(duì)列、Prometheus監(jiān)控和Portainer容器管理等基礎(chǔ)中間件實(shí)現(xiàn),基礎(chǔ)支撐服務(wù)會(huì)對(duì)整個(gè)分布式IM即時(shí)通訊系統(tǒng)提供最基礎(chǔ)的數(shù)據(jù)、傳輸、監(jiān)控和容器管理等服務(wù)。

(2)容器化

在容器化層面,會(huì)通過Docker、Swarm和Portainer實(shí)現(xiàn),其中,會(huì)基于Swarm和Portainer對(duì)容器化進(jìn)行管理。

(3)其他基礎(chǔ)性功能實(shí)現(xiàn)

除了上述分層架構(gòu)外,對(duì)于建設(shè)分布式IM即時(shí)通訊系統(tǒng)來說,還要考慮異常監(jiān)控、服務(wù)注冊(cè)與發(fā)現(xiàn)、可視化、服務(wù)降級(jí)與兜底數(shù)據(jù)、服務(wù)限流、服務(wù)容災(zāi)、容量規(guī)劃與擴(kuò)縮容和全鏈路壓測(cè)等。

七、DDD分層業(yè)務(wù)架構(gòu)設(shè)計(jì)

在分布式IM即時(shí)通訊系統(tǒng)中,不管是大后端平臺(tái),還是IM即時(shí)通訊服務(wù),我們都會(huì)對(duì)業(yè)務(wù)層的代碼采用分層業(yè)務(wù)架構(gòu),這里,可以借鑒DDD的分層架構(gòu)思想,將代碼總體上分成展示層、應(yīng)用層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層四個(gè)層次,但是,考慮到分布式IM即時(shí)通訊系統(tǒng)的特殊性,又不會(huì)嚴(yán)格按照DDD的原則來設(shè)計(jì)代碼分層,具體按照如圖1-4所示。

圖片

可以看到,分布式IM即時(shí)通訊系統(tǒng)會(huì)借鑒DDD的設(shè)計(jì)思想,但是不會(huì)完全按照DDD的方式進(jìn)行設(shè)計(jì)。

(1)展示層

展示層,也叫做用戶UI層,是DDD設(shè)計(jì)的最上層,對(duì)外提供API接口,接收客戶端請(qǐng)求,解析參數(shù),返回結(jié)果數(shù)據(jù),并對(duì)異常進(jìn)行處理。

(2)應(yīng)用層

應(yīng)用層,也叫做Application層,應(yīng)用層主要處理容易變化的業(yè)務(wù)場(chǎng)景,可對(duì)相關(guān)的事件、調(diào)度和其他聚合操作進(jìn)行相關(guān)的處理。

(3)領(lǐng)域?qū)?/h4>

領(lǐng)域?qū)樱步凶鯠omain層,領(lǐng)域?qū)涌梢哉f是DDD設(shè)計(jì)的精髓所在,它是將業(yè)務(wù)系統(tǒng)中相對(duì)不變的部分抽象出來封裝成領(lǐng)域模型。

在分布式IM即時(shí)通訊系統(tǒng)的設(shè)計(jì)中,領(lǐng)域?qū)踊静粫?huì)依賴其他層,也不會(huì)依賴基礎(chǔ)設(shè)施層,這里是與DDD設(shè)計(jì)存在區(qū)別的地方。

(4)基礎(chǔ)設(shè)施層

基礎(chǔ)設(shè)施層,也叫做Infrastructure層,基礎(chǔ)設(shè)施層會(huì)對(duì)其他各層提供通用的基礎(chǔ)能力,在分布式IM即時(shí)通訊系統(tǒng)中,就包括了緩存、通用工具類、消息、系統(tǒng)的持久化機(jī)制等。

八、發(fā)送消息交互鏈路

在分布式IM即時(shí)通訊系統(tǒng)中,我們忽略掉其他一些細(xì)節(jié)信息,重點(diǎn)關(guān)注下發(fā)送消息的交互鏈路邏輯。不管是單聊還是群聊,最終都需要通過IM即時(shí)通訊服務(wù)將消息推送給用戶的終端。此時(shí)發(fā)送消息的流程如圖1-5所示。

圖片

可以看到,用戶在分布式IM即時(shí)通訊系統(tǒng)發(fā)送消息時(shí),不管是單聊還是群聊,最終的消息都會(huì)推送到用戶登錄的終端設(shè)備上。假設(shè)此時(shí)用戶A給用戶B發(fā)送消息,或者用戶A和用戶B在同一個(gè)群組,用戶A向群組發(fā)送消息,用戶B接收消息的主要流程如下。

  • 用戶A調(diào)用后端平臺(tái)的接口向用戶B發(fā)送消息,并且發(fā)送的消息中會(huì)帶有用戶B的ID以及終端信息。
  • 后端平臺(tái)將消息緩存起來,并且會(huì)將消息異步寫入消息庫。
  • 后端平臺(tái)從Redis中獲取用戶B連接的IM即時(shí)通訊服務(wù)的ID。
  • 后端平臺(tái)獲取到用戶B連接的IM即時(shí)通訊服務(wù)的ID后,會(huì)向RocketMQ中用戶B連接的IM即時(shí)通訊服務(wù)ID對(duì)應(yīng)的Topic發(fā)送消息。
  • IM即時(shí)通訊服務(wù)會(huì)監(jiān)聽自身服務(wù)ID對(duì)應(yīng)的RocketMQ中Topic的消息,此時(shí),用戶B連接的IM即時(shí)通訊服務(wù)會(huì)接收到消息。
  • IM即時(shí)通訊服務(wù)接收到消息后,會(huì)根據(jù)用戶B的ID以及終端信息從緩存中獲取用戶B與IM即時(shí)通訊服務(wù)建立的連接,并且通過這個(gè)連接向用戶B推送消息。

要實(shí)現(xiàn)如上發(fā)送消息的流程,前提是要滿足如下條件。

  • 后端平臺(tái)滿足分布式條件,可隨時(shí)橫向擴(kuò)展。
  • IM即時(shí)通訊服務(wù)滿足分布式條件,可隨時(shí)橫向擴(kuò)展。
  • 每個(gè)啟動(dòng)的IM即時(shí)通訊服務(wù)實(shí)例在集群中都有一個(gè)唯一的ID。
  • 每個(gè)IM即時(shí)通訊服務(wù),都只監(jiān)聽自身ID對(duì)應(yīng)的RocketMQ中Topic的消息。
  • 用戶登錄分布式IM即時(shí)通訊系統(tǒng)后,會(huì)與IM即時(shí)通訊服務(wù)建立長(zhǎng)連接,并且會(huì)根據(jù)用戶ID和所在的終端緩存長(zhǎng)連接,同時(shí)會(huì)根據(jù)用戶ID和所在的終端將連接的IM即時(shí)通訊服務(wù)的ID緩存到Redis。
  • 用戶發(fā)送消息時(shí),會(huì)根據(jù)目標(biāo)用戶的ID和終端從Redis中獲取IM即時(shí)通訊服務(wù)的ID,進(jìn)而向當(dāng)前IM即時(shí)通訊服務(wù)的ID對(duì)應(yīng)的RocketMQ的Topic發(fā)送消息。
  • 對(duì)應(yīng)的IM即時(shí)通訊服務(wù)監(jiān)聽并接收到RocketMQ消息后,會(huì)根據(jù)目標(biāo)用戶的ID和終端從緩存中獲取到用戶的連接信息,向目標(biāo)用戶推送消息。

九、單聊交互鏈路

單聊就是在分布式IM即時(shí)通訊系統(tǒng)中,一個(gè)用戶直接與另外一個(gè)用戶聊天,也就是一對(duì)一的聊天。在這種場(chǎng)景下,很有可能單聊的兩個(gè)用戶中,出現(xiàn)用戶不在線的情況。

例如,用戶A給用戶B發(fā)送消息時(shí),用戶B可能不在線。此時(shí),我們就需要將用戶A向用戶B發(fā)送的消息存儲(chǔ)起來。其實(shí),在我們實(shí)現(xiàn)的分布式IM即時(shí)通訊系統(tǒng)中,無論把用戶B是否在線,都會(huì)存儲(chǔ)消息記錄。當(dāng)用戶B登錄系統(tǒng)后,將消息同步給用戶B,如圖1-6所示。

圖片

可以看到,用戶A向用戶B發(fā)送消息時(shí),如果用戶B在線,就可以按照發(fā)送消息的交互鏈路向用戶B發(fā)送消息了。如果用戶B不在線,此時(shí)就無法向用戶B正常推送消息。當(dāng)用戶B登錄分布式IM即時(shí)通訊系統(tǒng)后,就會(huì)調(diào)用后端平臺(tái)的接口拉取所有未讀消息,并通過用戶B在線流程向用戶B推送消息。

十、群聊交互鏈路

群聊就是在分布式IM即時(shí)通訊系統(tǒng)中,多個(gè)用戶在同一個(gè)群組中進(jìn)行聊天,此時(shí)在發(fā)送消息時(shí),我們可以通過群組ID找出群內(nèi)所有在線的用戶,將消息即時(shí)發(fā)送給在線的用戶。那些未在線的用戶就按照單聊未在線的用戶進(jìn)行處理,如圖1-7所示。

圖片

可以看到,群聊的交互鏈路流程如下所示。

  • 用戶調(diào)用后端平臺(tái)的接口向群組發(fā)送消息。
  • 后端平臺(tái)將消息緩存并異步寫入消息庫。
  • 由于是向群組發(fā)送消息,群里有多個(gè)用戶,此時(shí)就會(huì)從Redis中獲取所有用戶連接的IM即時(shí)通訊服務(wù)ID列表。
  • 對(duì)用戶按照服務(wù)ID分組,將相同服務(wù)ID下的用戶分在同一個(gè)邏輯分組里,方便后續(xù)推送消息,并且會(huì)記錄未在線的用戶列表。
  • 循環(huán)向每個(gè)服務(wù)ID對(duì)應(yīng)的RocketMQ中的Topic發(fā)送消息。
  • 廣播處理未在線用戶的未讀消息ID。
  • IM即時(shí)通訊服務(wù)會(huì)監(jiān)聽自身服務(wù)ID對(duì)應(yīng)的Topic,會(huì)隨時(shí)接收推送到自身服務(wù)的消息。
  • 當(dāng)IM即時(shí)通訊服務(wù)接收到消息后,此時(shí)用戶掉線,或者用戶不在線,向用戶推送消息就會(huì)失敗,或者未查詢到用戶與IM即時(shí)通訊服務(wù)建立的連接,就不會(huì)向用戶推送消息。
  • 當(dāng)用戶登錄分布式IM即時(shí)通訊系統(tǒng)后,會(huì)從后端平臺(tái)拉取歷史(離線)消息,并通過用戶在線的流程,向用戶推送消息。

好了,看到這里,你明白如何設(shè)計(jì)一個(gè)高度可擴(kuò)展的分布式IM即時(shí)通訊系統(tǒng)了嗎?趕緊拿本子記錄下你學(xué)到的知識(shí),將其整理到簡(jiǎn)歷上吧!

十一、寫在最后

這些真實(shí)場(chǎng)景的項(xiàng)目設(shè)計(jì)與落地實(shí)現(xiàn),在冰河的知識(shí)星球除了分布式IM即時(shí)通訊系統(tǒng)外,還有其他5個(gè)項(xiàng)目,這些項(xiàng)目的需求、方案、架構(gòu)、落地等均來自互聯(lián)網(wǎng)真實(shí)業(yè)務(wù)場(chǎng)景,讓你真正學(xué)到互聯(lián)網(wǎng)大廠的業(yè)務(wù)與技術(shù)落地方案,并將其有效轉(zhuǎn)化為自己的知識(shí)儲(chǔ)備。

責(zé)任編輯:姜華 來源: 冰河技術(shù)
相關(guān)推薦

2025-04-23 09:21:10

2019-03-21 09:45:20

IM即時(shí)通訊CIM

2021-08-14 09:23:03

即時(shí)通訊IM互聯(lián)網(wǎng)

2024-01-22 08:01:17

IM即時(shí)通訊系統(tǒng)

2025-07-09 08:38:27

2021-10-20 05:55:22

即時(shí)通訊IM網(wǎng)絡(luò)

2023-12-21 09:10:13

2011-10-20 22:25:49

網(wǎng)易即時(shí)通

2025-01-06 08:00:54

2020-09-30 18:00:48

JavaSpring BootIM

2015-07-30 15:54:20

容聯(lián)云通訊IM

2019-01-16 10:55:08

Python 開發(fā)編程語言

2012-06-11 09:27:17

imo即時(shí)通訊

2011-06-30 10:50:24

即時(shí)通訊

2012-05-17 14:25:17

imo即時(shí)通訊

2011-08-04 14:50:07

263EM

2012-03-05 11:06:28

imo即時(shí)通訊

2013-10-16 11:32:55

imoRTX即時(shí)通訊

2012-03-30 10:47:05

imo

2014-11-19 12:51:29

融云O2O即時(shí)通訊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

男人的天堂一区二区| 国产传媒久久久| 中文在线资源天堂| 天天影视综合| 日韩三级在线观看| www.射射射| 日本一本草久在线中文| 日本女优在线视频一区二区| 亚洲欧美日韩中文在线制服| 污版视频在线观看| 国产福利在线播放麻豆| 成人av在线观| 国产欧美一区二区白浆黑人| 国产成人自拍网站| 久久男人av| 欧美高清视频一二三区| 美女扒开大腿让男人桶| 福利片在线看| 国v精品久久久网| 国产精品都在这里| 波多野结衣亚洲一区二区| 老司机凹凸av亚洲导航| 欧美日韩一级视频| 日本一区午夜艳熟免费| 男男电影完整版在线观看| 美女视频黄久久| 97av在线影院| 欧美日韩黄色网| 国产精品一区二区三区av麻| 91精品国产综合久久国产大片 | 岛国av中文字幕| 欧美3p在线观看| 日韩情涩欧美日韩视频| 精品www久久久久奶水| 9191在线播放| 欧美国产日韩在线观看| 国产精品区一区| 中文字幕在线视频第一页| 欧美三级第一页| 中文字幕无线精品亚洲乱码一区| 污污内射在线观看一区二区少妇| 日韩电影精品| 日本久久电影网| 俄罗斯av网站| 欧美videos另类精品| 中文字幕av一区二区三区| 好吊色欧美一区二区三区视频| 91在线你懂的| 亚洲精品色图| 久久久久久久久久久亚洲| 亚洲色图欧美色| 国产成人1区| 日韩亚洲欧美在线观看| 在线视频一二区| 精品乱码一区二区三区四区| 日韩人在线观看| a√天堂在线观看| caoporm免费视频在线| 国产精品日韩成人| 日韩中文字幕一区| 四虎影视在线播放| proumb性欧美在线观看| 国产精品亚洲不卡a| 国内精品久久久久久久久久| 韩国视频一区二区| 91久久久久久国产精品| 97人妻一区二区精品免费视频 | 无码人妻av一区二区三区波多野 | 中文字幕欧美日韩精品| 日本不卡一二区| 午夜国产精品视频免费体验区| 精品国产一区二区三区久久狼黑人 | 国产午夜精品一区在线观看 | 国产成人a亚洲精品| 无码人妻熟妇av又粗又大| 蜜臀精品久久久久久蜜臀| 成人激情春色网| www.日本在线观看| 91丨九色丨蝌蚪丨老版| 视频一区二区精品| 18av在线视频| 黄色91在线观看| 午夜免费精品视频| 精品久久亚洲| 日韩成人中文字幕在线观看| 中字幕一区二区三区乱码| 99精品视频精品精品视频| 欧美片一区二区三区| 91蜜桃视频在线观看| 久久资源在线| 51国偷自产一区二区三区 | 99re免费视频精品全部| 亚洲精品久久久久久一区二区| 最新国产在线拍揄自揄视频| 午夜日韩在线电影| 午夜剧场高清版免费观看| 国产精品白浆| 中文字幕精品久久久久| 国产一级片视频| 日韩avvvv在线播放| 国产精品.com| 天天综合视频在线观看| 午夜国产精品一区| 中文字幕永久有效| 欧美人妖在线观看| 久久视频在线直播| 国产精品熟女视频| 成人免费高清在线观看| 亚洲一区高清| 中文字幕成在线观看| 欧美一区二区在线看| 51调教丨国产调教视频| 2023国产精品久久久精品双| 日韩av手机在线观看| 国产国语亲子伦亲子| 国产欧美一区二区精品忘忧草 | 精品久久久久久久久久久久久久久久久 | 亚洲在线精品视频| 2021国产精品久久精品| 精品视频在线观看一区二区| av成人免费| 国产婷婷97碰碰久久人人蜜臀 | 成人情视频高清免费观看电影| 国产毛片av在线| 天天爽夜夜爽夜夜爽精品视频 | 久久久精品综合| 久久久性生活视频| 欧美电影院免费观看| 色综合伊人色综合网| 精品久久久久久久久久久久久久久久久久| 国产成人av电影在线| 在线看视频不卡| 在线成人视屏| 亚洲人成电影网| 免费观看成人毛片| 9l国产精品久久久久麻豆| 一二三在线视频| 中文字幕综合| 色多多国产成人永久免费网站| 中文字幕在线欧美| 99国产精品久久久久久久久久 | 日本视频在线一区| 日韩中文一区二区三区| 朝桐光一区二区| 亚洲欧美中文日韩在线| 亚洲天堂男人av| av电影一区二区| 少妇高潮喷水在线观看| 免费成人蒂法| 91国产美女视频| 视频国产在线观看| 欧美日韩免费在线观看| 国产三级国产精品| 久久午夜激情| 日韩理论片在线观看| 日韩三区免费| 中文字幕亚洲一区在线观看| 在线观看国产精品入口男同| 国产精品久久久久久久久免费桃花| 污网站免费在线| 亚洲精品电影| 国产乱码精品一区二区三区卡| www欧美xxxx| 日韩精品免费视频| 精品一区二三区| 亚洲欧洲日韩在线| 亚洲熟妇一区二区| 亚洲最黄网站| 日韩精品一区二区三区外面| 日本免费成人| 色综合男人天堂| 四虎精品在线| 欧美性大战久久久| 国产a免费视频| 91啪亚洲精品| 亚洲综合日韩欧美| 狠狠入ady亚洲精品| 麻豆av一区二区| 四虎地址8848精品| 久久久久久久久久亚洲| 成人精品福利| 欧美精品一区二区在线观看| 国产精品suv一区| 亚洲同性同志一二三专区| 性农村xxxxx小树林| 美女网站久久| 成年人视频大全| 亚洲欧美成人vr| 92国产精品视频| 日本在线啊啊| 不卡av电影在线观看| 手机福利在线| 日韩欧美资源站| 免费一级a毛片| 亚洲网友自拍偷拍| 女教师淫辱の教室蜜臀av软件| 国产精品1024久久| www.天天射.com| 在线成人亚洲| 中文字幕久精品免| 亚洲人成网www| 成人欧美视频在线| 69堂精品视频在线播放| 久久久亚洲国产| 麻豆影视在线观看_| 亚洲美女在线观看| 丰满少妇高潮在线观看| 欧美亚洲图片小说| 91九色丨porny丨肉丝| 亚洲女人****多毛耸耸8| 久久久久久亚洲中文字幕无码| 国产精品亚洲成人| www.亚洲高清| 日韩精品一二三区| 国产美女主播在线播放| 66国产精品| 一区二区三区四区欧美| 蜜桃一区二区| 精品国产乱码久久久久久久软件| 成人精品在线| 国产欧美 在线欧美| 澳门成人av网| 久久久久久久久久av| www免费视频观看在线| 中文字幕在线成人| 国产特黄在线| 亚洲人永久免费| 欧美欧美欧美| 日韩成人在线电影网| 农村少妇久久久久久久| 欧美mv日韩mv国产网站app| 一本大道伊人av久久综合| 日本韩国欧美三级| 伊人中文字幕在线观看| 欧美日韩精品在线| 午夜影院在线看| 亚欧色一区w666天堂| 久久丫精品久久丫| 亚洲精品亚洲人成人网| 四虎永久免费在线| 亚洲人被黑人高潮完整版| 亚洲熟女少妇一区二区| 国产精品久久久久婷婷二区次| 欧美大波大乳巨大乳| 久久久国产精品不卡| 国产视频三区四区| 国产欧美一区二区在线| 懂色av粉嫩av浪潮av| 国产精品私人影院| 可以免费看av的网址| 国产精品伦一区二区三级视频| 国产在线观看免费视频软件| 国产精品久久久久影院亚瑟| jizzjizz日本少妇| 1024精品合集| 九九视频在线观看| 午夜视频久久久久久| 久久国产视频精品| 日本乱码高清不卡字幕| 一级欧美一级日韩| 91麻豆精品国产91久久久| www.激情五月.com| 亚洲福利在线播放| 看电影就来5566av视频在线播放| 国产亚洲欧美日韩精品| 欧美成人性生活视频| 九九热视频这里只有精品| 丁香花在线高清完整版视频| 91精品国产色综合| www.成人在线视频| 亚洲伊人一本大道中文字幕| 成人18夜夜网深夜福利网| 精品国产一区二区三区免费 | 国产一二三在线视频| 国产情侣久久| 天天干天天综合| 国产精品原创巨作av| 免费在线观看日韩av| 久久久久国产精品免费免费搜索| 岛国片在线免费观看| 亚洲愉拍自拍另类高清精品| 伦av综合一区| 日韩视频免费观看高清在线视频| 五月婷婷丁香花| 尤物精品国产第一福利三区| 在线观看午夜av| 日韩av片免费在线观看| 国产免费区一区二区三视频免费| 国产精品大全| 国产精品7m凸凹视频分类| 国产一级爱c视频| 蜜臀久久久久久久| 国产精品成人99一区无码 | 久久9999久久免费精品国产| 色天天综合久久久久综合片| 国产麻豆91视频| 亚洲毛片在线看| 国产在线xxx| 国产精品日韩av| 牛牛影视久久网| 久久久久久久久久久久久国产| 久久高清一区| av在线天堂网| 中文字幕视频一区| 天堂网中文字幕| 欧美精品一区二区三区蜜桃视频 | 牛牛影视一区二区三区免费看| 伊人久久大香线蕉精品| 99精品视频免费观看| 午夜免费福利网站| 中文字幕av一区二区三区| 国产成人免费看| 日韩午夜电影av| yourporn在线观看中文站| 欧美野外猛男的大粗鳮| 精品久久久久久久久久岛国gif| 日韩欧美99| 欧美一级播放| 精品国产人妻一区二区三区| 一区二区三区在线视频观看58| 国产精品51麻豆cm传媒 | 欧美18hd| 国产精品久久久久久久久久99| 国产精品国产| 精品人妻人人做人人爽| 国产精品自拍三区| 顶臀精品视频www| 欧美日韩国产在线播放网站| 成人综合影院| 国产99久久久欧美黑人| 日韩欧美天堂| 北条麻妃在线观看| 91啪亚洲精品| 久久精品国产成人av| 日韩成人在线免费观看| 日本乱码一区二区三区不卡| 久久av一区二区| 美女爽到呻吟久久久久| 亚洲第一成人网站| 一本色道久久综合亚洲91| 亚洲人成色777777精品音频| 97人人爽人人喊人人模波多| 成人在线tv视频| 2018日日夜夜| 91在线看国产| 久久精品视频1| 亚洲天堂一区二区三区| 亚洲wwww| 亚洲国产一区二区三区在线| 卡一卡二国产精品| 成人在线观看小视频| 欧美一区二区成人| 色在线视频网| 国产欧美综合精品一区二区| 性色一区二区| 免费看91的网站| 欧美日韩国产综合草草| av在线下载| 国精产品99永久一区一区| 先锋亚洲精品| 国产精品视频在| 欧美一级高清大全免费观看| 激情图片在线观看高清国产| 精品久久久久久综合日本| 久久久精品网| 欧美性生给视频| 日韩欧美国产一二三区| 蜜桃视频www网站在线观看| 欧美在线3区| 国产真实乱子伦精品视频| 国产一级片网址| 国产一区二区三区精品久久久 | 日韩av在线网站| 精品欧美一区二区三区在线观看| 宅男一区二区三区| 成人综合在线网站| 伊人中文字幕在线观看| 日韩网站免费观看| 韩国女主播一区二区三区| 18岁视频在线观看| 亚洲激情图片小说视频| 天堂а在线中文在线无限看推荐| 国产欧美亚洲精品| 亚洲毛片播放| av最新在线观看| 日韩av一区在线观看| 久久精品资源| www精品久久| 国产精品嫩草99a| 欧美一级做性受免费大片免费| 国产激情久久久| 国产精品啊啊啊| 超碰人人人人人人人| 精品国产免费人成在线观看| 97精品国产综合久久久动漫日韩| 97久久国产亚洲精品超碰热 | 久久精品国产亚洲AV无码男同| 亚洲欧美日韩图片| 北条麻妃一区二区三区在线观看| 天天色综合社区|