Skip to content

protobj/tonkio

Repository files navigation

Tonkio 游戏服务器

一个基于 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

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd tonkio

2. 启动基础设施

# 启动 Nacos、KeyDB、PostgreSQL
docker-compose up -d

3. 数据库迁移

# 执行数据库迁移
./migrator.sh up  <database> up|down

4. 生成配置资源

# 生成游戏配置
./gen_resource.sh

5. 启动服务

# 启动登录服务
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: 快照服务配置

About

game server skeleton built with Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published