littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于Go语言的分布式即时通讯系统

项目简介

本项目是使用纯Go语言实现的分布式即时通讯(IM)系统。采用分层架构,包含Comet(用户连接层)、Logic(业务逻辑层)和Job(任务推送层),各层间通过RPC通信,支持集群部署,扩展性良好。系统支持单用户和房间级消息推送,还内置心跳机制保障连接稳定,借助Redis的订阅发布功能高效推送消息。

项目的主要特性和功能

  1. 分布式架构:系统采用分布式设计,各层可独立部署,支持集群扩展。
  2. 消息推送:支持向单个用户或整个房间推送消息。
  3. 心跳机制:通过gorilla/websocket实现WebSocket通信,内置心跳支持,确保连接稳定。
  4. 基于Redis的消息推送:使用Redis的订阅发布功能进行消息推送,保证消息的实时性和可靠性。
  5. 轻量级设计:系统采用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界面进行测试,确保系统正常运行。

部署注意事项

  1. 防火墙设置:确保服务器防火墙开放了相关端口,以便服务能够正常通信。
  2. 配置文件:根据实际部署环境,修改各层的配置文件(如logic.tomlcomet.tomljob.toml),确保配置正确。
  3. 安全性:在生产环境中,确保Redis和Zookeeper服务的安全配置,防止未授权访问。

后续计划

  1. 监控模块:开发系统监控模块,实时监控系统运行状态。
  2. 聊天机器人:集成聊天机器人功能,增强系统的交互性。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】