這是一個聊天系統的簡單架構,解決大量用戶須要即時通信的解決方案,基於RPC框架Dubbo,SpringBoot構建微服務應用,提供Docker快速部署的解決方案。 提供Android客戶端相似微信功能,包括好友添加
,私聊
,羣聊
,等基本功能java
掃碼體驗APK下載android
NOTE: 本apk基於android-chat構建替換爲java協議棧開發git
賬號:13800000000, 13800000001, 13800000002
密碼:556677
複製代碼
聊天系統爲了適應大規模用戶的連接請求,將服務分爲連接服務
和消息服務
,它們都是獨立的,能夠單獨部署也能夠集羣部署github
用於解決用戶的連接請求,支撐百萬級用戶的連接,可單擊部署,可集羣部署,目前爲了快速部署,暫時不啓用集羣部署。若是你存在大規模用戶連接,能夠啓動集羣模式,參考K8s自動伸縮模式sql
用於用戶處理用戶管理,會話管理,離線消息處理,羣組管理等功能,是整個即時通信系統的業務處理模塊docker
增長持續集成的好處shell
NOTE: 如下是發佈持續交付工做流圖微信
本機部署只須要兩個SpringBoot
服務,一個Mysql
服務,一個zookeeper
服務,連接服務push-connector
集羣模式還須要kafka
支持架構
docker
與docker-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中部署,咱們也提供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
複製代碼
NOTE: 若是你但願直接腳本部署,參考腳本部署
該項目是開源項目,歡迎提出建議或者提供意見反饋
此項目時在參考其餘項目基礎上完成,在此表示感謝