Using Netty as the server and WebSocket as the communication protocol, the instant messaging system developed by microservice architecture is adopted.
正在开发中,开发笔记可以在我的个人wiki中看到: WithMe 3.0 开发笔记
目前基本单人聊天和群组聊天功能已经正常,后续开发计划正在思考中。
项目相关问题请在issue中提问,提issue时请详细描述场景、问题,给出必要的代码、控制台或者报错截图,感谢您的支持~
如果你对这个项目感兴趣,想要交流IM相关开发经验或者一起造轮子,欢迎加入QQ群 730490237 来一起讨论共同开发2333
mvn clean package -DskipTests
cd /deployment/docker-compose
docker-compose build
docker-compose up
前提是有一个至少拥有两个节点且内存充足的Kubernetes集群,关于Kubernetes搭建教程请参考官方文档和博客。
配置私有Docker镜像仓库或者注册DockerHub账号,打包并上传此项目镜像。
修改 deployment/kubernetes/deployment中各服务镜像地址为自己的私有镜像仓库或者DockerHub仓库。
配置 nfs文件共享服务器,并且在共享目录下(/nfs/share)新建如下文件夹
之后分别修改 /deployment/kubernetes/pv 下各文件夹 spec.nfs.path 为你的共享文件夹名称加上述名称(若为nfs-share则不必修改),同时修改server为你的nfs服务器IP地址。 请注意:确保集群每个Node都安装nfs
在项目根目录依次执行以下命令:
# 创建pv
kubectl create -f deployment/kubernetes/pv
# 创建pvc
kubectl create -f deployment/kubernetes/pvc
# 创建deployment
kubectl create -f deployment/kubernetes/deployment
# 创建service
kubectl create -f deployment/kubernetes/service
如果不进行前两步操作,则默认从我的DockerHub仓库中拉取镜像,本地修改无法生效。
若集群已存在pv策略,可根据自己集群情况执行第三步的pv配置。
Kubernetes部署初步试运行,后续会有更多相关文档和说明,开发笔记中也会更新踩坑记录。
因为项目使用了多个MySQL数据库,如果机器内存过小可能会启动失败。内存较小机器可切换至share-db分支,此分支所有数据库使用同一个MySQL数据库,较小内存机器也可以正常启动。
虽然项目在Docker容器中启动,但为了方便和调试已将全部服务端口映射至主机,如果主机对应端口被占用也可能导致启动失败,请检查相关端口是否被占用:
服务名 | 主机映射端口 | 容器内端口 | 可否取消主机端口映射 |
---|---|---|---|
redis | 6379 | 6379 | 可以 |
mysql | 3307 ~ 3312 | 3306 | 可以 |
service | 21003 ~ 21008 | 8081 | 可以 |
websocket-service | 21002 | 8282 | 可以 |
nginx | 80 | 8081 | 不可以 |
其中除nginx之外,其它端口映射都可以取消。
需要保证上面 主机映射端口 这一列端口没有占用,如果占用可以去docker-compose.yml文件中取消或者修改端口映射,只要 别改ui-service主机映射端口 就好。
其它项目开发技术、开发文档见doc/ 目录,目前尚在施工中。