分布式應用系統設計:即時消息系統

即時消息(IM)系統,涉及:站內消息系統

組件如下;

客戶端: WEB頁面,IM桌面客戶端。通過WebSocket 跟ChatService后端服務連接

Chat Service: 提供WebSocket接口,并保持跟“客戶端”狀態的維護。接受客戶端的消息,以及實時消息的推送。

Message Dispatch Service: 這時我自己加的,U4要給U1 發送消息,然U1的長連接是在 CS1 連接著呢,怎么推送獲取呢。 就得維護:客戶Chanel和CharService實例的映射關系

User Service: 用于維護客戶端狀態,維護“客戶Chanel和CharService實例的映射關系” 映射

交互圖:

【4】消息消費

1. 根據“對話表”拆解用戶發送的消息

2. 消息需要通知到個人

3. 根據“用戶channel-CharService1 映射 ”查找 CharService的IP

4. 根據IP推送消息

參考:常見分布式應用系統設計圖解(一):即時消息系統

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44311.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44311.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44311.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

會聲會影分割音頻怎么不能用 會聲會影分割音頻方法 會聲會影視頻制作教程 會聲會影下載免費中文版2023

將素材中的音頻分割出來,對聲音部分進行單獨編輯,是剪輯過程中的常用操作。會聲會影視頻剪輯軟件在分割音頻后,還可以對聲音素材進行混音編輯、音頻調節、添加音頻濾鏡等操作。有關會聲會影分割音頻怎么不能用,會聲會影分割音頻方…

如何快速制作您的數據可視化大屏?

數據大屏可視化主要就是借助圖形,利用生動、直觀的形式展示出數據信息的具體數值,使得使用者短時間內更加直觀的接受到大量信息。數據大屏以直觀、高度視覺沖擊力的方式向受眾揭示數據背后隱藏的規律,傳達數據價值。其以圖形化的形式呈現數據…

視頻使用操作說明書-T80005系列視頻編碼器如何對接海康NVR硬盤錄像機,包括T80005系列高清HDMI編碼器、4K超高清HDMI編碼器

視頻使用操作說明書-T80005系列視頻編碼器如何對接海康NVR硬盤錄像機,包括T80005系列高清HDMI編碼器、4K超高清HDMI編碼器。 視頻使用操作說明書-T80005系列視頻編碼器如何對接海康NVR硬盤錄像機,包括T80005系列高清HDMI編碼器、4K超高清HDMI編碼器 同三…

全國產T3+FPGA的SPI與I2C通信方案分享

近年來,隨著中國新基建、中國制造2025規劃的持續推進,單ARM處理器越來越難勝任工業現場的功能要求,特別是如今能源電力、工業控制、智慧醫療等行業,往往更需要ARM FPGA架構的處理器平臺來實現例如多路/高速AD采集、多路網口、多路…

Tomcat多實例

一、Tomcat多實例 Tomcat多實例是指在同一臺服務器上運行多個獨立的tomcat實例,每個tomcat實例都具有獨立的配置文件、日志文件、應用程序和端口,通過配置不同的端口和文件目錄,可以實現同時運行多個獨立的Tomcat服務器,每個服務…

element-plus 按需導入問題 404等問題

場景 新開一個項目,需要用element-plus這個ui庫,使用按需引入。 這是我項目的一些版本號 "element-plus": "^2.7.6","vue": "^3.2.13","vue-router": "^4.0.3",過程(看解決方法…

FastGPT+OneAI接入網絡模型

文章目錄 FastGPT連接OneAI接入網絡模型1.準備工作2.開始部署2.1下載 docker-compose.yml2.2修改docker-compose.yml里的參數 3.打開FastGPT添加模型3.1打開OneAPI3.2接入網絡模型3.3重啟服務 FastGPT連接OneAI接入網絡模型 1.準備工作 本文檔參考FastGPT的官方文檔 主機ip接…

JVM是如何管理內存的?圖文詳解GC垃圾回收算法

前言:在C/C中對于變量的內存空間一般都是由程序員手動進行管理的,往往會伴隨著大量的 malloc 和 free 操作,常常會有很多問題困擾開發者,這個代碼會不會發生內存泄漏?會不會重復釋放內存?但是在Java開發中我…

基于企業微信第三方接口開發,移除群成員通知

移除群成員通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…

Spring源碼十九:Bean實例化流程二

上一篇我們在Spring源碼十八:Bean實例化流程一 中,主要討論了Spring在實例化前的兩重要準備工作,1、獲取我們前面注冊好的BeanDefinition,將GenericBeanDefinition封裝為RootBeanDefinition如果Bean Definition只存在父容器中&…

.profile腳本

.profile 是一個用戶級別的 shell 啟動腳本,用于初始化用戶環境設置,通常用于配置環境變量、設置路徑、運行初始化命令等。以下是一個示例 if [ "$BASH" ]; thenif [ -f ~/.bashrc ]; then. ~/.bashrcfi fimesg n || true 這段代碼通常出現在…

計算器原生js

目錄 1.HTML 2.CSS 2.JS 4.資源 5.運行截圖 6.下載連接 7.注意事項 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

【C++】引用變量詳解

&#x1f4e2;博客主頁&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01; &#x1f4e2;本文由 JohnKi 原創&#xff0c;首發于 CSDN&#x1f649; &#x1f4e2;未來很長&#…

文檔去重(TF-IDF,MinHash, SimHash)

2個doc有些相似有些不相似&#xff0c;如何衡量這個相似度&#xff1b; 直接用Jaccard距離&#xff0c;計算量太大 TF-IDF: TF*IDF TF&#xff1a;該詞在該文檔中的出現次數&#xff0c; IDF&#xff1a;該詞在所有文檔中的多少個文檔出現是DF&#xff0c;lg(N/(1DF)) MinHash …

數據分析_計劃

我做大數據的有6年了&#xff0c;以前都是用sql&#xff0c;或者spark&#xff0c;java&#xff0c;scala&#xff0c;python去做。現在這些平臺搭建、維護、大多數都是搭建一次就完了&#xff0c;而且維護大多是大廠直接用云平臺去做。ETL也是就做一次就夠了&#xff0c;我們公…

基于JAVA+SpringBoot+Vue+Uni-app前后端分離的校園好物小紅書分享平臺小程序

?全網粉絲20W,csdn特邀作者、博客專家、CSDN新星計劃導師、java領域優質創作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取項目下載方式&#x1f345; 一、項目背景介紹&#xff1a; 在快速數字化的時代背…

同三維T80004EA編解碼器視頻使用操作說明書:高清HDMI編解碼器,高清SDI編解碼器,4K超清HDMI編解碼器,雙路4K超高清編解碼器

同三維T80004EA編解碼器視頻使用操作說明書&#xff1a;高清HDMI編解碼器&#xff0c;高清SDI編解碼器&#xff0c;4K超清HDMI編解碼器&#xff0c;雙路4K超高清編解碼器 同三維T80004EA編解碼器視頻使用操作說明書&#xff1a;高清HDMI編解碼器&#xff0c;高清SDI編解碼器&am…

UniVue@v1.3.0版本發布

GitHub倉庫 發布版本倉庫&#xff1a;https://github.com/Avalon712/UniVue 開發版本倉庫&#xff1a;https://github.com/Avalon712/UniVue-Develop UniVue拓展框架UniVue源生成器倉庫&#xff1a;https://github.com/Avalon712/UniVue-SourceGenerator v1.3.0版本新增功能…

DangerWind-RPC-framework---四、SPI

SPI 即 Service Provider Interface &#xff0c;可以理解為專門提供給服務提供者或者擴展框架功能的開發者去使用的一個接口。SPI 將服務接口和具體的服務實現分離開來&#xff0c;將服務調用方和服務實現者解耦&#xff0c;能夠提升程序的擴展性、可維護性。修改或者替換服務…

etcd 實現分布式鎖

10 基于 Etcd 的分布式鎖實現原理及方案