蘑菇街TeamTalk服務端分析
login_server:均衡負載伺服器,用來通知客戶端連線到負載最小的msg_server (1臺)。
msg_server:客戶端連線伺服器(N臺)。客戶端通過msg_server登陸,保持長連線。
route_server:訊息中轉伺服器(1臺)。
DBProxy:資料庫服務,運算元據庫(N臺)。
訊息收發流程:
msg_server啟動時,msg_server主動建立到login_server和route_server的長連線。
客戶端登陸時,首先通過login_server 獲取負載最小的msg_server。連線到msg_server。登陸成功後,msg_server發訊息給route_server,route_server記錄使用者的msg_server。與此同時,msg_server傳送訊息給login_server,login_server收到後,修改對應msg_server的負載值。
客戶端訊息傳送到msg_server。msg_server判斷接收者是否在本地,是的話,直接轉發給目標客戶端。否的話,轉發給route_server。
route_server接收到msg_server的訊息後,獲取to_id所在的msg_server,將訊息轉發給msg_server。msg_server再將訊息轉發給目標接收者。
資料庫操作:
訊息記錄,獲取使用者資訊等需要運算元據庫的,由msg_server傳送到db_server。db_server操作完後,傳送給msg_server。
相關文章
- 蘑菇街一鍵搬家的工具
- 蘑菇街 App 的元件化之路APP元件化
- 蘑菇街前端電話一面前端
- 蘑菇街SRE體系建設實踐
- 前端面試(2)之蘑菇街一面前端面試
- Thinkphp仿蘑菇街商城版(b2c)PHP
- Thinkphp仿蘑菇街商城版(c2c)PHP
- iOS實習面經(位元組美團阿里蘑菇街)iOS阿里
- TeamTalk原始碼分析(四) —— 伺服器端db_proxy_server原始碼分析原始碼伺服器Server
- 來自滬江、滴滴、蘑菇街架構師的 DOCKER 實踐分享架構Docker
- mPaaS 服務端核心元件:移動分析服務 MAS 架構解析服務端元件架構
- 服務端指南 服務端概述 | 微服務架構概述服務端微服務架構
- 效能測試-服務端瓶頸分析思路服務端
- 蘑菇街釋出2020年財報,佣金收入佔比過半
- 對話:一個工程師在蘑菇街4年的架構感悟工程師架構
- 服務端渲染到前端渲染,再到“服務端渲染”服務端前端
- TCP服務端TCP服務端
- 服務端 unity服務端Unity
- Netty原始碼分析(二):服務端啟動Netty原始碼服務端
- Dubbo原始碼分析(五)Dubbo呼叫鏈-服務端原始碼服務端
- “蘑菇街裁員”上熱搜:工作上這3件事,你越早明白越好!
- bbossaop遠端服務介紹-遠端服務呼叫例項
- Netty系列文章之服務端啟動分析Netty服務端
- Fabric 1.0原始碼分析(35)Peer #EndorserServer(Endorser服務端)原始碼Server服務端
- FTP服務端部署FTP服務端
- react 服務端渲染React服務端
- 服務端漫遊服務端
- Oracle 服務端程式Oracle服務端
- 對比分析--淺析SSR(服務端渲染)和SPA(客戶端渲染)服務端客戶端
- Python 服務端整合 騰訊雲 IM 服務Python服務端
- 服務端常見服務安裝及配置服務端
- netty原始碼分析之服務端啟動全解析Netty原始碼服務端
- Nacos(二)原始碼分析Nacos服務端註冊示例流程原始碼服務端
- Vue/React 元件 PHP 服務端渲染(SSR)可行性分析VueReact元件PHP服務端
- 使用多種客戶端消費WCF RestFul服務(一)——服務端客戶端REST服務端
- bbossaop遠端服務介紹-遠端服務id定義規則
- 如何理解服務端渲染?服務端
- 部落格的服務端服務端