游戏服务器
社交/休闲小游戏服务器端技术体系文档,从架构选型与工程搭建出发,逐步覆盖网络层、核心玩法、玩家数据、社交与经济系统、并发扩展与安全运维。
文档列表
架构设计
- 社交/休闲小游戏服务器全景概述 — 品类特点、典型技术栈、与后端业务系统的异同
- 游戏服务器核心架构模式 — 单服/分服/S 服、微服务/ECS/Actor 对比、选型决策树
- 通信协议选型 — TCP/UDP/WebSocket、Protobuf/FlatBuffers/MessagePack、自定义协议设计
- 游戏服务器技术栈选型 — Netty + Spring Boot / Akka / Vert.x 对比、依赖与版本管理
- 项目工程结构设计 — Maven/Gradle 多模块划分、模块职责边界、公共/协议/业务/网关模块
- 游戏服务器配置管理 — 多环境分离、Nacos/Apollo 接入、动态配置热更新、一致性保障
- 实战篇:搭建游戏服务器骨架工程 — 多模块 Maven + Netty 启动 + Protobuf + 消息分发完整链路
网络层
- Netty 核心概念深入 — EventLoop/Reactor 线程模型、ChannelPipeline 责任链、Bootstrap 引导
- Netty 粘包拆包处理 — 粘包拆包原理、三种 FrameDecoder 对比、自定义解码器
- 自定义协议编解码 — 消息头+消息体设计、Magic/Version/Opcode、Protobuf 集成
- 连接管理与会话 — Session 抽象、心跳检测 IdleStateHandler、断线重连、上下线生命周期
- WebSocket 接入层 — WS 握手与 Netty 集成、文本/二进制帧处理、心跳保活
- 消息分发与路由 — Opcode 映射、消息线程模型、业务线程池隔离、异步处理
- 实战篇:Netty 通信层完整实现 — 协议编解码 + Session + 心跳 + 消息路由分发完整链路
数据与存储
- 玩家账号体系设计 — 第三方/游客登录、Token 认证、设备绑定、防沉迷接口
- 玩家数据模型设计 — Player 核心实体、背包/任务等子模块划分、E-R 模型
- MySQL 玩家数据存储方案 — Uid Hash/时间分表、冷热分离、读写分离、ShardingSphere 集成
- Redis 在游戏中的缓存应用 — 在线数据 Hash、排行榜 ZSet、计数器 INCR、分布式锁 Redisson
- 数据持久化策略 — 定时落盘/事件触发/下线保存、离线清理、备份与恢复
- NoSQL 方案选型 — MongoDB 文档模型、LevelDB/RocksDB 嵌入式、TiDB 分布式数据库
- 实战篇:玩家系统完整实现 — 注册登录 + 数据模型 + MySQL + Redis 双写 + 持久化全链路
游戏逻辑
- 房间系统设计 — 创建/加入/退出/解散、房间状态机、房间属性配置
- 匹配系统实现 — ELO/Rating 算法、匹配池设计、定时匹配与快速开始、超时处理
- 回合制对战流程 — 出牌阶段流转、超时检测、掉线重连状态恢复
- 房间内消息同步 — 广播/单播/组播、帧同步 vs 状态同步、消息序号与可靠投递
- 玩家行为验证 — 服务端权威、出牌合法性校验、操作频率限制、行为日志审计
- 结算系统设计 — 胜负判定、积分/金币计算、对战统计、MVP 评选、战报生成
- 实战篇:房间 + 回合制对战完整实现 — 房间状态机 + 匹配 + 回合流转 + 消息同步 + 结算全链路
- 实时对战核心原理 — Lockstep 帧同步、客户端输入队列、服务器 Tick 驱动、逻辑/渲染帧分离
- 帧同步服务器实现 — 输入收集与广播、延迟补偿、随机数种子同步、断线恢复帧回放
- 状态同步服务器实现 — 权威服务器模式、增量广播、AOI 兴趣区域(网格/十字链表)、视野管理
- 游戏物理与碰撞检测基础 — 2D 碰撞常见实现、AABB 碰撞、服务端碰撞验证与反外挂
- 倒计时与定时器管理 — HashedWheelTimer vs ScheduledExecutorService、任务取消与清理
- 随机算法在游戏中的应用 — 伪随机/真随机、Fisher-Yates 洗牌、保底/概率递增/PRD
- 实战篇:实时交互场景综合实现 — 状态同步选型 + 碰撞反弹 + 倒计时 + 种子随机 + 反外挂综合案例
社交系统
- 好友系统设计 — 好友请求/添加/删除/拉黑、在线状态、好友上限、推荐好友算法
- 聊天系统设计 — 频道划分、Kafka/RocketMQ 聊天架构、敏感词过滤、消息频率限制
- 公会/战队系统 — 公会创建/加入/退出/解散、领地/任务/活动、权限体系、公会排行榜
- 邮件系统 — 邮件类型区分、收发存储、附件领取与过期清理、群发邮件设计
- 排行榜系统 — Redis SortedSet 全服排行、分段排行、榜单缓存、同分排名策略
- 成就/称号系统 — 成就条件检测、进度持久化、达成奖励发放、称号展示与装备
- 实战篇:社交系统完整实现 — 好友 + 聊天 + 公会 + 邮件 + 排行榜五合一综合案例
经济系统
- 虚拟货币系统设计 — 硬通货/软通货/体力值等货币类型、货币数量安全、流水日志与审计
- 道具/物品系统 — Item 统一抽象、道具类型、增减接口设计、背包容量管理
- 商城系统设计 — 商品定义、限购/折扣/限时商品、购买支付流程、订单防重复、发货补偿
- 抽卡/抽奖系统 — 概率表配置、软保底/硬保底、服务器随机种子、抽取记录与公示
- 任务与日常系统 — 任务类型、进度追踪、奖励投放策略、活跃度体系
- 签到与奖励 — 月签/周签循环、累计签到奖励、补签机制、活跃度奖励阶梯
- 实战篇:经济系统完整实现 — 货币 + 道具 + 商城 + 抽奖 + 任务 + 签到六大模块综合案例
运营系统
- 活动系统框架设计 — 活动模板/配置化、时间段管理、分组与排期、条件与达成奖励
- 限时活动实现 — 节日活动、Boss 战/冲榜赛、动态开启关闭、活动数据清理
- 公告与推送系统 — 公告分级、全服公告推送、邮件/推送通知接入
- 每日刷新与定时任务 — 每日 0 点重置策略、跨日处理、XXL-Job/Quartz 调度、任务幂等执行
- 礼包码/CDK 系统 — 码生成算法、兑换流程、有效期/限领/渠道管理、黑产防范
- 运营后台设计预览 — GM 工具功能概述、后台 API 鉴权、操作审计
- 实战篇:运营系统完整实现 — 活动框架 + 每日刷新 + 公告 + 礼包码 + 定时任务综合案例
并发与扩展
- 游戏服务器的并发挑战 — 并发量评估、线程安全设计原则、锁粒度控制、CAS 无锁编程
- Actor 模型与 Akka 入门 — Actor/Message/Mailbox、Akka 核心概念、Akka 与 Netty 对比选型
- Actor 模型在游戏中的应用 — 玩家/房间/匹配 Actor 职责划分、消息通信、生命周期管理
- 房间分布式 Actor 方案 — Akka Cluster、分片 Sharding 路由、热迁移与故障恢复
- Event Sourcing 在游戏中的应用 — 事件溯源、玩家操作事件流、回放恢复状态、CQRS 读写分离
- Reactor 响应式编程 — WebFlux 网关应用、背压控制、反应流与 Netty EventLoop 整合
- 实战篇:Akka Actor 房间管理实现 — Actor 重构房间 + 消息通信 + Cluster 分片扩展
- 游戏服务器水平扩展架构 — 网关/逻辑/数据三层架构、无状态网关、逻辑层分片方案
- 网关层设计与实现 — Netty/WS 接入、连接与玩家 ID 映射、流量转发规则、灰度发布
- 房间分片策略 — Hash 分片、一致性哈希 Ketama、动态分片伸缩方案
- 跨服通信方案 — gRPC/Dubbo/Thrift 选型、跨服消息路由、服务发现、跨服 Battle
- 消息队列在游戏中的应用 — 异步削峰、操作解耦、排行榜/统计异步处理、消息可靠性保证
- 微服务拆分实践 — 用户/房间/匹配/好友/商城服务拆分、Seata/TCC 一致性
- 实战篇:分布式游戏服务器集群搭建 — 网关 + 多逻辑节点 + 分片 + RPC + MQ 完整集群
性能优化
- Netty 性能调优 — EventLoop 线程数、PooledByteBufAllocator 内存池、TCP 参数调优
- JVM 游戏服务器调优 — G1/ZGC 选型、堆内存分配策略、线程栈、JVM 专项参数
- 数据库性能优化 — 慢查询/索引/覆盖索引、HikariCP 调优、Redis Pipeline、大 Key 拆分
- 压力测试体系 — 压测客户端、QPS/RT 评估、千人同服在线测试、瓶颈定位优化
- 协议优化与带宽控制 — LZ4/Zstd 压缩、字段精简、批量聚合发送、上下行流量控制
- CPU/内存/网络监控 — Arthas 诊断、JFR/JMC 分析、Prometheus + Grafana 监控、连接泄漏排查
- 实战篇:性能压测与调优全流程 — 压测脚本 + 瓶颈定位 + JVM/Netty/DB 调优 + 优化前后对比
安全与反外挂
- 游戏安全概述 — 常见攻击类型分析、安全纵深防御体系、安全设计原则
- 协议安全 — AES/RSA 混合加密、HMAC 完整性校验、Timestamp + Nonce 防重放
- 服务端权威验证 — 核心玩法服务器运算、客户端仅表现、敏感操作二次校验、数值合法性验证
- 行为检测与反脚本 — 操作频次检测、异常行为模式分析、同 IP 多账号、设备指纹
- 防沉迷与合规 — 实名认证、未成年人时长/充值限制、隐私脱敏、用户协议
- 游戏日志审计 — 全量日志埋点、TraceId 链路追踪、异常告警、存储与归档
- 实战篇:安全体系综合实现 — 协议加密 + 服务端权威 + 频次检测 + 防沉迷 + 日志审计五合一
运维与监控
- 灰度发布与热更新 — 灰度策略、配置热更新、不停服维护、旧连接优雅关闭
- 日志收集与分析 — ELK/EFK 搭建、Kibana 可视化、慢接口/异常告警、查询实践
- 实时监控与告警 — Prometheus + Grafana 面板、自定义告警规则、钉钉/企微通知
- 全链路追踪 — OpenTelemetry、SkyWalking/Jaeger、TraceId 透传、瓶颈链路分析
- 容器化部署 — Docker 多阶段构建、Compose 编排、K8s 部署配置
- CI/CD 流水线 — GitLab CI/GitHub Actions、自动化测试、自动部署到测试/预发布环境
- 实战篇:运维体系完整搭建 — Docker + Prometheus/Grafana + ELK + SkyWalking + CI/CD 全链路
综合实战与收尾
- 综合实战:棋牌/桌游类服务器(上) — 协议设计 + 玩家系统 + 房间管理 + 回合制对战 + 结算系统完整实现
- 综合实战:棋牌/桌游类服务器(下) — 好友邀请 + 排行榜 + 商城购买 + 安全校验 + 性能压测
- 综合实战:多人实时休闲游戏服务器(上) — 帧同步/状态同步选型 + 实时广播 + 房间内帧同步 + AOI 视野管理
- 综合实战:多人实时休闲游戏服务器(下) — 匹配池 + 分布式分片 + 弹性伸缩 + 反外挂检测 + 全链路监控
- 游戏服务器设计文档撰写 — 架构设计/接口规范/数据库设计/部署运维手册四类文档模板
- 游戏服务器面试专题 — 网络模型/Actor/帧同步/状态同步/安全/性能优化/分布式扩展高频考点问答
- 收尾总结:游戏服务器全栈知识体系回顾 — 知识体系地图 + 最佳实践清单 + 推荐书单/项目/学习路径