这是一个聊天系统的简单架构,解决大量用户需要即时通讯的解决方案,基于RPC框架Dubbo,SpringBoot构建微服务应用,提供Docker快速部署的解决方案。
提供Android客户端类似微信功能,包括好友添加
,私聊
,群聊
,等基本功能
扫码体验APK下载
NOTE: 本apk基于android-chat构建替换为java协议栈开发
- 请选择其中任何一个帐号密码进行登录即可
帐号:13800000000, 13800000001, 13800000002
验证码:556677
- 技术咨询
当你登录上面其中一个测试帐号后,如果你有什么问题,请到通讯录找到官方人员
发消息即可,你也可以在IM即时通讯交流组
提问,如果在研究过程中有问题,可以随时咨询,本人尽量提供技术支持,但并不保证随时在线,请尽量在工作日时间发消息
web客户端基于websocket通信,在此协议之上使用json格式的协议进行通讯,目前正在紧张的开发中,敬请期待vue-chat
- 项目预览
NOTE: 演示地址 演示账号
,验证码
同手机版一致
聊天系统为了适应大规模用户的链接请求,将服务分为链接服务
和消息服务
,它们都是独立的,可以单独部署也可以集群部署
用于解决用户的链接请求,支撑百万级用户的链接,可单机部署,可集群部署。如果你存在大规模用户链接,可以启动集群模式,参考K8s自动伸缩模式
用于用户处理用户管理,会话管理,离线消息处理,群组管理等功能,是整个即时通讯系统的业务处理模块
增加持续集成的好处
- 随时随地发布软件
- 任何一次构建都能触发一次发布
- 只需发布一次artifact,即可随时发布
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的即时通讯系统的持续集成发布说明
如果你希望自己编译镜像,你必须克隆此代码,并在本地编译此项目。然后执行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: 如果你希望直接脚本部署,参考脚本部署
该项目是开源项目,欢迎提出建议或者提供意见反馈,如果你喜欢此项目,请点击star
支持我们不断改进
此项目时在参考其他项目基础上完成,在此表示感谢