Posts 第二十三课:核心逻辑设计——登录系统
Post
Cancel

第二十三课:核心逻辑设计——登录系统

第一章:什么是登录系统

登录系统简述

玩家通过客户端与服务器建立连接,在服务器哥哥进程上完成需要的账号和角色数据创建,并进入游戏场景开始游戏的流程。

搭建登录系统的准备工作

  • 实现接入服务器(connect server)
  • 实现db存取(DB server + mysql)
  • 制定协议(protobuf)

第二章:基本流程

  • 建立/断开连接
  • 用户登录/登出
  • 创建/删除/修改角色
  • 进入/离开场景

设计模式

  • 状态模式
    • 多进程分别维护账户登录状态上下文
    • 通过网络消息驱动
    • 分层状态机设计

简单的登录流程

  • 消息驱动
  • 多层状态机
  • 分布式

Screen Shot 2021-04-22 at 14.53.01

第三章:性能问题

服务器物理性能边界

  • 服务器物理性能边界
    • 流量,CPU,内存,DB访问
  • 互联网服务实际线上会遇到的性能问题
    • 性能波动
      • 玩家的大规模集中登录
      • 群体传送
    • 毛刺与雪崩

性能问题实例

  • 流量
    • server -> server:玩家数据打包迁移
    • server -> client:视野信息同步
  • CPU
    • 大量集中内存操作,如果没有平滑策略,就会产生毛刺
    • 如果毛刺导致CPU 100%,可能触发雪崩
  • 内存
    • 核心进程聚集大量中转数据
  • DB
    • 集中数据存储

第四章:开发效率与高可用性

破窗理论和实现隐藏

  • 破窗理论
    • 底层框架系统的示范和放大效应:登录层和逻辑层的混合
  • 实现隐藏
    • 分层设计
    • 消息机制

墨菲定律和基本原则

  • 物理机宕机
    • Scene宕机
    • DB宕机
  • 网络拥塞
  • DB过载

基本原则:出错可以回滚,支持重试

知识点总结

  • 游戏服务器基本组成

    • 基础组件:链接、存盘、日志
    • 逻辑服务:分布式多进程系统
  • 登录是个多层分布式状态机

    • 对基本流程有个印象
    • 知道需要考虑各种边界情况
  • 底层系统要考虑性能,容灾和团队开发问题

    • 四个物理性能边界,毛刺和雪崩可能的产生点
    • 100%一定会出问题,控制出问题后的会影响范围
This post is licensed under CC BY 4.0 by the author.

第二十二课:服务器并发设计

第二十四课:服务器可用性设计

Trending Tags