CroupierCroupier
指南
架构
API 参考
  • C++ SDK
  • Go SDK
  • Java SDK
  • JavaScript SDK
  • Python SDK
  • C# SDK
  • Lua SDK
分析
GitHub
指南
架构
API 参考
  • C++ SDK
  • Go SDK
  • Java SDK
  • JavaScript SDK
  • Python SDK
  • C# SDK
  • Lua SDK
分析
GitHub
  • 入门指南

    • 首页
    • 新手教程
    • 快速开始
    • 安装指南
    • 配置管理
    • 部署指南
    • 常见问题
  • 核心概念

    • 系统概览
    • 虚拟对象系统
    • 函数管理
    • 权限控制
  • 运维指南

    • 监控指南
    • 安全配置
    • 故障排查

系统概览

Croupier 是一个现代化的三层分布式 GM 后台系统,专为游戏运营和管理而设计。

设计理念

三层架构

┌────────────────────────────────────────────────────────────┐
│                    可观测展示层                            │
│  描述符驱动 UI · 风控提示 · 敏感字段脱敏 · 进度追踪        │
└────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌────────────────────────────────────────────────────────────┐
│                    函数控制层                              │
│  函数注册 · 调用路由 · 幂等处理 · 负载均衡                │
└────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌────────────────────────────────────────────────────────────┐
│                    权限控制层                              │
│  RBAC/ABAC · 操作审批 · 审计日志 · 风控策略                │
└────────────────────────────────────────────────────────────┘

核心特性

特性说明
零信任安全gRPC+mTLS、细粒度 RBAC/ABAC、操作审批与审计日志
函数注册驱动游戏服务器通过 Agent 注册函数,控制面统一管理
Schema 驱动 UIX-Render + JSON Schema 自动生成表单和界面
可观测性解耦控制面与遥测面分离,支持实时事件处理
多语言 SDKGo / C++ / Java / JS / Python 全覆盖
协议优先所有 API 通过 Protocol Buffers 定义

系统组件

Server(控制平面)

中央控制平面,负责权限控制、函数路由和协调。

  • 端口: gRPC 8443 (mTLS), HTTP 8080 (REST)
  • 职责:
    • Agent 注册与连接管理
    • 函数调用路由与负载均衡
    • RBAC/ABAC 权限校验
    • 审计日志记录
    • 操作审批工作流

Agent(分布式代理)

部署在游戏内网的代理进程,负责游戏服务器与控制平面的通信。

  • 端口: gRPC 19090 (本地监听)
  • 职责:
    • 连接 Server 并保持长连接
    • 注册游戏服务器函数
    • 转发函数调用请求
    • 执行异步作业
    • 支持双向隧道

Edge(边缘代理)

可选的 DMZ/边缘组件,用于公网场景。

  • 职责:
    • 桥接内网 Server 和公网 Agent
    • 隧道切换与连接复用
    • 流量转发与负载均衡

Dashboard(管理界面)

基于 React + Ant Design 的 Web 管理界面。

  • 技术栈: Umi Max + Ant Design + X-Render
  • 职责:
    • 函数调用可视化
    • 审批流程管理
    • 实时日志查看
    • 权限配置界面

数据流模式

标准调用流程

隧道模式(经 Edge)

虚拟对象系统

Croupier 采用四层虚拟对象模型:

1. Function(函数)

具体的业务操作实现。

{
  "id": "player.ban",
  "name": "封禁玩家",
  "params": {
    "type": "object",
    "properties": {
      "player_id": {"type": "string"},
      "duration": {"type": "integer"}
    }
  }
}

2. Entity(实体)

业务对象的完整描述。

{
  "id": "player",
  "name": "玩家",
  "schema": { /* JSON Schema */ },
  "operations": {
    "create": "player.register",
    "read": "player.get",
    "update": "player.update",
    "delete": "player.ban"
  }
}

3. Resource(资源)

UI 层面的操作集合。

{
  "id": "player.resource",
  "type": "pro-table",
  "columns": [ /* 列定义 */ ],
  "actions": ["create", "edit", "delete"]
}

4. Component(组件)

功能模块的打包单位。

{
  "id": "player-management",
  "functions": ["player.*"],
  "entities": ["player"],
  "resources": ["player.resource"]
}

安全模型

RBAC/ABAC 权限控制

  • RBAC: 基于角色的访问控制
  • ABAC: 基于属性的访问控制
  • 审批工作流: 高风险操作需要双人审批
  • 审计链: 所有操作可追溯、防篡改

mTLS 通信

  • 服务间强制使用 mTLS
  • 支持自定义 CA 签名
  • 证书自动轮换(可选)

关键概念

概念说明
Game ID游戏标识,用于租户隔离
Env环境标识(dev/staging/prod)
Function ID函数唯一标识
Idempotency Key幂等键,防止重复执行
Job ID异步作业标识
Pack函数打包文件 (.tgz)

相关文档

  • 虚拟对象设计
  • 函数管理
  • 权限控制
  • 系统架构
在 GitHub 上编辑此页
最后更新: 2026/1/8 22:42
Next
虚拟对象系统