项目简介
这是一个基于Go语言开发的高性能分布式即时通信系统,能够处理大规模的即时通信场景。
项目的主要特性和功能
- 高性能与分布式架构:采用分布式架构设计,具备高性能处理能力,可应对大规模即时通信场景。
- 多协议支持:支持 TCP 和 WebSocket 协议,满足不同场景下的通信需求。
- 身份验证:实现了 JWT(JSON Web Token)的生成、解析和验证,用于用户身份验证。
- 数据存储:使用 Redis 进行会话信息的存储和获取,同时使用 MySQL 存储业务数据。
- 服务管理:借助 Consul 实现服务的注册、发现和管理,方便系统的扩展和维护。
安装使用步骤
环境准备
中间件安装
可选择以下两种方式启动所需中间件:
- 方式一:通过 docker-compose 启动
sh
docker-compose -f "docker-compose.yml" up -d --build
- 方式二:docker 分别启动
sh
docker run -itd --name aim_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
docker run \
-d \
-p 8500:8500 \
-p 8600:8600/udp \
--name=aim_consul \
consul agent -server -ui -node=server-1 -bootstrap-expect=1 -client=0.0.0.0
docker run -itd --name aim_redis -p 6379:6379 redis
数据准备
- 进入 Mysql,修改访问权限:
sh docker exec -it aim_mysql /bin/sh mysql -uroot -p123456 GRANT ALL ON *.* TO 'root'@'%'; flush privileges;
- 创建数据库:
sql create database aim_base default character set utf8mb4 collate utf8mb4_unicode_ci; create database aim_message default character set utf8mb4 collate utf8mb4_unicode_ci;
启动服务
进入 services
目录,分别启动三个服务:
sh
go run main.go gateway
go run main.go server
go run main.go royal
查看服务状态
访问 Consul 查看服务启动状态: http://localhost:8500/ui
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】