支持集羣的分佈式即時聊天系統

支持集羣的分佈式即時聊天系統

適合快速部署的聊天系統

這是一個聊天系統的簡單架構,解決大量用戶須要即時通信的解決方案,基於RPC框架Dubbo,SpringBoot構建微服務應用,提供Docker快速部署的解決方案。 提供Android客戶端相似微信功能,包括好友添加私聊羣聊,等基本功能java

image

掃碼體驗APK下載android

image

NOTE: 本apk基於android-chat構建替換爲java協議棧開發git

  • 請選擇其中任何一個賬號密碼進行登陸便可
賬號:13800000000, 13800000001, 13800000002
密碼:556677
複製代碼

服務說明

聊天系統爲了適應大規模用戶的連接請求,將服務分爲連接服務消息服務,它們都是獨立的,能夠單獨部署也能夠集羣部署github

連接服務[push-connector]

用於解決用戶的連接請求,支撐百萬級用戶的連接,可單擊部署,可集羣部署,目前爲了快速部署,暫時不啓用集羣部署。若是你存在大規模用戶連接,能夠啓動集羣模式,參考K8s自動伸縮模式sql

消息服務[push-group]

用於用戶處理用戶管理,會話管理,離線消息處理,羣組管理等功能,是整個即時通信系統的業務處理模塊docker

自動化構建

增長持續集成的好處shell

  • 隨時隨地發佈軟件
  • 任何一次構建都能觸發一次發佈
  • 只需發佈一次artifact,便可隨時發佈

NOTE: 如下是發佈持續交付工做流圖微信

image

如何啓動服務

本機部署只須要兩個SpringBoot服務,一個Mysql服務,一個zookeeper服務,連接服務push-connector集羣模式還須要kafka支持架構

部署前準備

  • 安裝dockerdocker-composer,若是須要在k8s中部署,請準備好相關的環境
  • 確保編譯此項目mvn clean package -Dmaven.test.skip=true

生產模式

這種模式下,全部的鏡像都會從Docker Hub下載,只須要複製docker-compose.yml,在該目錄下執行docker-compose up便可. 若是要查看完整的部署步驟,請參考這裏基於Docker的即時通信系統的持續集成發佈說明app

開發模式

若是你但願本身編譯鏡像,你必須克隆此代碼,並在本地編譯此項目。而後執行docker-compose -f docker-compose.yml -f docker-compose-dev.yml up

K8S中部署

若是想在k8s中部署,咱們也提供yml配置,執行如下命令便可,詳情參考即時通信服務在k8s容器的部署說明

kubectl apply -f https://www.comsince.cn/download/cloud-native/universe-kube-deployment.yml
複製代碼

或者下載代碼執行,push-connector支持擴展,以適應海量長鏈接,集羣模式須要kafka支持,若是kafka沒有啓動成功,能夠手動重啓push-connector

kubectl apply -f ./universe-kube-deployment.yml
複製代碼

image

NOTE: 若是你但願直接腳本部署,參考腳本部署

歡迎爲此項目做出貢獻

該項目是開源項目,歡迎提出建議或者提供意見反饋

感謝

此項目時在參考其餘項目基礎上完成,在此表示感謝

相關文章
相關標籤/搜索