项目简介
本项目是使用纯Go语言实现的分布式即时通讯(IM)系统。采用分层架构,包含Comet(用户连接层)、Logic(业务逻辑层)和Job(任务推送层),各层间通过RPC通信,支持集群部署,扩展性良好。系统支持单用户和房间级消息推送,还内置心跳机制保障连接稳定,借助Redis的订阅发布功能高效推送消息。
项目的主要特性和功能
- 分布式架构:系统采用分布式设计,各层可独立部署,支持集群扩展。
- 消息推送:支持向单个用户或整个房间推送消息。
- 心跳机制:通过
gorilla/websocket
实现WebSocket通信,内置心跳支持,确保连接稳定。 - 基于Redis的消息推送:使用Redis的订阅发布功能进行消息推送,保证消息的实时性和可靠性。
- 轻量级设计:系统采用Go语言编写,代码简洁高效,易于维护和扩展。
安装使用步骤
1. 安装依赖
确保已安装Go语言环境,并下载本项目源代码。
bash
cd $GOPATH/src/im
go get ./...
bash
mkdir -p golang.org/x/
mv net $GOPATH/src/golang.org/x/
2. 部署Zookeeper
系统依赖Zookeeper进行服务注册与发现,需先安装并启动Zookeeper。
bash
wget http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
tar -zxvf zookeeper-3.4.12.tar.gz
cd zookeeper-3.4.12/conf/
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg # 编辑配置文件,自定义dataDir
cd ../bin
./zkServer.sh start # 启动Zookeeper
3. 部署IM系统
启动Logic层
bash
cd $GOPATH/src/im/logic
mv logic.toml.example logic.toml
go install -tags zookeeper
$GOPATH/bin/logic d $GOPATH/src/im/logic/
启动Comet层
bash
cd $GOPATH/src/im/comet
mv comet.toml.example comet.toml
go install -tags zookeeper
$GOPATH/bin/comet d $GOPATH/src/im/comet/
启动Job层
bash
cd $GOPATH/src/im/job
mv job.toml.example job.toml
go install
$GOPATH/bin/job d $GOPATH/src/im/job/
4. 运行Demo
bash
cd $GOPATH/src/im/demo
go run main.go
5. 测试
通过提供的API或Web界面进行测试,确保系统正常运行。
部署注意事项
- 防火墙设置:确保服务器防火墙开放了相关端口,以便服务能够正常通信。
- 配置文件:根据实际部署环境,修改各层的配置文件(如
logic.toml
、comet.toml
、job.toml
),确保配置正确。 - 安全性:在生产环境中,确保Redis和Zookeeper服务的安全配置,防止未授权访问。
后续计划
- 监控模块:开发系统监控模块,实时监控系统运行状态。
- 聊天机器人:集成聊天机器人功能,增强系统的交互性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】