java 即时通讯 集群_支持集群的分布式即时聊天系统

1460000020490504146000000905637114600000204905051460000020490506

适合快速部署的聊天系统

这是一个聊天系统的简单架构,解决大量用户需要即时通讯的解决方案,基于RPC框架Dubbo,SpringBoot构建微服务应用,提供Docker快速部署的解决方案。

提供Android客户端类似微信功能,包括好友添加,私聊,群聊,等基本功能

921b3e7495982f4aa5ba4cd6514fa95a.gif

扫码体验APK下载

NOTE: 本apk基于android-chat构建替换为java协议栈开发

请选择其中任何一个帐号密码进行登录即可

帐号:13800000000, 13800000001, 13800000002

密码:556677

服务说明

聊天系统为了适应大规模用户的链接请求,将服务分为链接服务和消息服务,它们都是独立的,可以单独部署也可以集群部署

链接服务[push-connector]

用于解决用户的链接请求,支撑百万级用户的链接,可单击部署,可集群部署,目前为了快速部署,暂时不启用集群部署。如果你存在大规模用户链接,可以启动集群模式,参考K8s自动伸缩模式

消息服务[push-group]

用于用户处理用户管理,会话管理,离线消息处理,群组管理等功能,是整个即时通讯系统的业务处理模块

自动化构建

增加持续集成的好处

随时随地发布软件

任何一次构建都能触发一次发布

只需发布一次artifact,即可随时发布

NOTE: 以下是发布持续交付工作流图

eed067f3e3f8d53e10cafb6335a03de7.png

如何启动服务

本机部署只需要两个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中部署

如果想在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

4750ea36eae6dffa54be751bc08912be.png

NOTE: 如果你希望直接脚本部署,参考脚本部署

欢迎为此项目作出贡献

该项目是开源项目,欢迎提出建议或者提供意见反馈

感谢

此项目时在参考其他项目基础上完成,在此表示感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值