Apollo 技术文档Apollo 技术文档
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
  • 架构设计

    • 架构概述
    • BigWorld 架构深度解析
    • BigWorld 进程架构与玩家生命周期
  • AOI 系统

    • AOI九宫格系统详解
    • AOI广播与消息去重

Apollo 架构概述

整体架构

Apollo 现在更合理的理解方式,不是旧的“按模块目录罗列层级”,而是:

  • 一套渐进式的代码分层
  • 一组可装配的业务域组件
  • 一层可选的 BigWorld 分布式增强能力
  • 最后才是进程和部署拓扑

如果只看 MMO 主线,Apollo 当前应固定为两种 topology:

  • Standard MMO
    • Client -> Login -> Gateway -> BaseApp(PlayerAnchor) -> WorldApp
  • Distributed World
    • Client -> Login -> BaseApp(Proxy + PlayerAnchor) -> CellApp

这里也要明确:

  • BaseApp 不是数据库服务
  • GatewayApp 不是分布式世界默认必选核心

按新思路,Apollo 更推荐采用 10 层分层:

L10 Assembly / Topology
L9 Distributed World Extension
L8 Domain Components
L7 Game Foundation
L6 Platform Foundation
L5 Runtime Ops Host
L4 Runtime Host
L3 Transport / Messaging / Protocol
L2 Core Kernel
L1 Base Infrastructure

层级说明

L1: Base Infrastructure

纯基础设施,无框架语义。

组件功能
Time时间工具、高精度计时
ThreadPool线程池、任务调度
IdPool唯一ID生成器
ObjectPool对象池、内存复用
String字符串处理工具
Memory内存池、Buffer管理
Terminal终端适配、ANSI彩色输出

L2: Core Kernel

框架内核,公共运行语义。

组件功能
Config配置管理、热更新
Log日志系统、分级输出
Lifecycle应用生命周期管理
Event事件总线
Timer定时器调度
Module模块注册与加载
ServiceDiscovery服务发现

L3: Transport / Messaging / Protocol

统一协议与消息边界。

子层功能
Client Protocol客户端请求/响应协议
Session Protocol登录、心跳、重连、接管
Internal Envelope进程间和实体间统一消息信封
Replication Protocol实体同步、可见集更新

L4: Runtime Host

宿主运行时,程序如何运行。

组件功能
ApplicationHost应用宿主
ProcessHost进程宿主
WorldHost世界宿主
ServiceHost服务宿主
Signal信号处理
ShutdownHook关闭钩子

L5: Runtime Ops Host

运行时治理、运维与调试层。

组件功能
Console本地控制台
ProcessGuardianpidfile、单实例、shutdown 协调
SupervisorAdaptersystemd/supervisor 交互
Watcher / Diagnostics观测、调试、状态查询
TelemetryBridgeOTel tracing/metrics 导出
Remote Control远程调试、远程控制

L6: Platform Foundation

平台基础能力层。

组件功能
Redis / KvStore键值存储与缓存基础能力
RelationalStoreMySQL/PostgreSQL/SQLite 统一访问
RepositoryBase统一数据访问抽象
Leaderboard排行榜组件
DistributedLock分布式锁
Queue / RateLimit通用平台组件

L7: Game Foundation

游戏框架基础语义层。

组件功能
EntitySchema统一实体定义
RemoteEntityCall统一远程实体调用
Replication Pipeline统一复制链路
Script ABI统一脚本宿主接口
Core Entity Runtime实体基类、属性、方法、生命周期

L8: Domain Components

可装配业务域组件层。

组件功能
Session登录、会话、玩家锚点
World地图、实例、AOI、世界运行
Battle技能、buff、战斗规则
Social聊天、好友、工会、邮件
Task/Activity任务、成就、活动
Platform Business支付、风控接入、运营业务能力

L9: Distributed World Extension

BigWorld 风格增强层。

组件功能
GhostReplica非权威实体投影
Witness客户端可见世界上下文
Authority Transfer权威迁移
Space Partition空间切片与拓扑
AppMgr分布式调度与控制

L10: Assembly / Topology

最终装配与部署层。

组件功能
Starter模块装配
Apps最终可执行进程
Topology部署拓扑与环境配置

依赖关系

L1 <- L2 <- L3 <- L4 <- L5 <- L6 <- L7 <- L8 <- L9 <- L10

硬约束:

  • L2 不反向依赖 L6/L7/L8
  • L3 不直接承载业务域逻辑
  • L6 不依赖具体业务域实现
  • L9 是增强层,不反向污染 L7
  • L10 只做装配,不承载核心框架能力

模式映射

普通 MMO 模式

默认启用:

  • L1-L8

按需最小启用:

  • L9

BigWorld 模式

在 L1-L8 稳定后,再叠加:

  • L9
  • L10 中对应的大世界部署拓扑

当前仓库的直接含义

基于当前 Apollo 仓库状态,最需要优先收口的是:

  • modules/runtime
  • modules/runtime/ops
  • modules/platform
  • modules/game/core
  • modules/game/world
  • modules/script

语义上需要继续校正的是:

  • BaseApp 的目标语义应稳定为玩家锚点宿主,而不是持久化进程
  • cell-app 当前更接近 world runtime 原型,后续应按两种 topology 分化为 WorldApp 或真正的 CellApp
  • DBMgr / PersistenceService 应单独理解为持久化执行层

更完整的分层说明见:

  • Apollo 分层设计

相关阅读

  • Apollo 分层设计
  • 进程语义重定义
  • 进程重组与实施路线
  • 持久化进程与 DBMgr 设计
  • Apollo 最终蓝图
  • Apollo 实施清单
  • Runtime Ops Host 设计
  • Platform Foundation 设计
  • 技术收敛与替换清单
  • 技术收敛实施计划
  • KBE 参考原则与 ECS 兼容取舍
  • Starter 与模块装配设计
  • 模块目录重组设计
  • Module Manifest 与 Registry 设计
  • App Bootstrap 生命周期设计
  • Host Builder 与 DI 设计
  • Configuration 与 Profile 设计
  • Capability 与 Feature Flag 设计
  • Testing 与 Verification 策略
  • Domain Event 与 Message Bus 设计
  • Persistence、Repository 与 Unit of Work 设计
  • Entity Lifecycle 与 State Machine 设计
  • World Tick、Scheduling 与 Job Model 设计
  • Interest Management 与 AOI Pipeline 设计
  • Combat Runtime 与 ECS 边界设计
  • Navigation、Movement 与 Physics Boundary 设计
  • Shard、Zone、Instance 与 Match Topology 设计
  • Observability、Watcher 与 Runtime Introspection 设计
  • Reliability、Failover 与 Recovery 设计
  • Apollo 世界架构路线
  • Apollo 架构差距分析
  • Apollo 渐进式游戏框架理论设计
  • 统一脚本层设计
  • Lua Backend 设计
  • Python Backend 设计
  • Apollo 重构路线图
  • WorldHost 设计稿
  • PlayerAnchor 设计稿
  • 玩家在线主链设计
  • BaseApp 演进设计
  • Gateway 会话设计
  • Gateway 接入 Facade 设计
  • Topology 对比与登录分发设计
  • MMO 组件装配目录
  • MMO 模块落地清单
  • Standard MMO 任务清单
  • Distributed World 任务清单
  • MMO 代码任务对照表
  • LoginApp 收口设计
  • World 进入与切图设计
  • Distributed Space 设计
  • AppMgr 设计
  • Witness 与 Ghost 设计
  • Authority Transfer 设计
  • Space Partition 与 Topology 设计
  • Base Cell Proxy 对象模型
  • EntitySchema 设计
  • RemoteEntityCall 设计
  • Internal Service Client 与 Envelope 设计
  • Replication Pipeline 设计
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • KBEngine 源码分析
在 GitHub 上编辑此页
最后更新: 4/27/26, 7:56 AM
贡献者: cuihairu
Next
BigWorld 架构深度解析