一个基于 Rust 构建的高性能分布式游戏服务器骨架,采用微服务架构设计。
- 高性能: 基于 Rust 语言和 Tokio 异步运行时
- 分布式架构: 微服务设计,支持水平扩展
- 服务发现: 集成 Nacos 服务注册与发现
- 数据持久化: 支持 PostgreSQL 和 Redis
- 配置热更新: 基于 Luban 的配置管理系统
- 容器化部署: 提供完整的 Docker Compose 配置
- Gate: 网关服务,处理客户端连接(TCP/WebSocket)
- Game: 游戏逻辑服务,处理核心游戏业务
- Login: 登录认证服务,管理用户账户
- Snapshot: 快照服务,处理数据持久化
- Robot: 机器人客户端,用于压力测试
- common/storage: 数据库访问层
- common/protobuf: gRPC 协议定义
- common/resource: 配置资源管理
- common/logging: 统一日志系统
- common/utils: 通用工具库
- common/service: 服务注册与发现
- 语言: Rust
- 异步运行时: Tokio
- RPC 框架: Tonic (gRPC)
- 数据库: PostgreSQL + Redis
- 服务发现: Nacos
- 序列化: Protocol Buffers
- 配置管理: Luban
- 容器化: Docker + Docker Compose
git clone <repository-url>
cd tonkio
# 启动 Nacos、KeyDB、PostgreSQL
docker-compose up -d
# 执行数据库迁移
./migrator.sh up <database> up|down
# 生成游戏配置
./gen_resource.sh
# 启动登录服务
cargo run --bin login -- --config conf/login-dev.toml
# 启动网关服务
cargo run --bin gate -- --config conf/gate-dev.toml
# 启动游戏服务
cargo run --bin game -- --config conf/game-dev.toml
# 启动快照服务
cargo run --bin snapshot -- --config conf/snapshot-dev.toml
tonkio/
├── common/ # 公共模块
│ ├── constants/ # 常量定义
│ ├── logging/ # 日志系统
│ ├── protobuf/ # gRPC 协议
│ ├── resource/ # 资源管理
│ ├── storage/ # 数据访问
│ ├── service/ # 服务发现
│ └── utils/ # 工具库
├── game/ # 游戏服务
├── gate/ # 网关服务
├── login/ # 登录服务
├── snapshot/ # 快照服务
├── robot/ # 机器人客户端
├── conf/ # 配置文件
├── _docker/ # Docker 配置
└── docker-compose.yml # 容器编排
每个服务都有对应的配置文件在 conf/
目录下:
game-dev.toml
: 游戏服务配置gate-dev.toml
: 网关服务配置login-dev.toml
: 登录服务配置snapshot-dev.toml
: 快照服务配置