• ARPG、MMORPG、MOBA、卡牌类、棋盘类游戏服务器架构图


    一、 架构图

    在这里插入图片描述

    分布式游戏服务器架构图。

    1. CDN:负责游戏客户端的代码热更新、游戏内的广告图。

    2. 版控服务器:负责版本更新控制、区服状态、登录历史。

    3. 中心服务器:用于控制所有服务器,提供服务注册与发现,服务配置与控制。

    4. 网关服务器:用于客户端连接与通信,所有消息都会通过网关进行转发。

    5. 单区服务器:用于处理单区的相关业务。

    6. 跨区服务器:用于处理跨区的相关业务。

    7. 镜像服务器:用于处理无状态的业务,如:战斗、匹配。

    二、 通信协议

    1. 客户端与版控服务器采用的是HTTP + Json通信协议。

    2. 客户都与网关服务器采用的是Socket + Protobuf通信协议。

    3. 中心服务器、网关服务器、单区服务器等内部都是采用Socket + Protobuf通信协议。

    三、 数据存储服务器

    1. 游戏数据存储:单区服务器、跨区服务器都是采用MySQL进行游戏数据存储。

    2. 缓存数据存储:单区服务器为了提高效率,会采用Memcache进行数据缓存。

    3. 文件数据存储:单区服务器、跨服服务器都会用文件存储来备份一些临时数据;战斗服务器会将战报存储到文件中。。

    四、 中心服务器

    中心服务器是个单点,维护着区服信息、节点信息、配置信息,用于其他服务器来进行读取。

    1. 只有当中心服务器启动后,其他服务器才能启动并注册上去。

    2. 中心服务器在运行过程中,会与其他服务器进行PING,来保持连接,并且收集运行状态。

    3. 中心服务器挂了后,其他服务器不会挂,只是不能支持新服务器启动与配置。

    4. 中心服务器配套一个可视化的控制台,用于架构全面监控与控制。

    五、 网关服务器

    1. 每个网关服务器可以支持多个区的连接,但一个区只能在一个网关服务器上。

    2. 网关服务器不做业务处理,只做鉴权处理与消息转发。

    3. 网关服务器进行了简单的限流处理。

    六、 单区服务器

    1. 单区服务包括多个单区业务服务器,用于分散业务处理压力,降低单点风险;

    2. 单区服务会将玩家状态保持在内存中,以加速业务处理;

    3. 单区服务会定时保存玩家的状态到单区数据库中;

    4. 单区服务会将部分玩家下线后的状态缓存在Memcache中,用于加速玩家登录。

    七、 跨区服务器

    1. 跨区服务也包括多个跨区业务服务器,用于分散业务处理压力,降低单点风险;

    2. 跨区服务也会将玩法状态保持在内存中,以加速业务处理,同样会定时存储到跨区数据库中;

    3. 跨区服务的跨区规则,是通过中心服务器采用设定规则自动分配;

    八、 镜像服务

    1. 镜像服务包括多个镜像业务服务器,例如:战斗服务器、匹配服务器、聊天服务器等;

    2. 镜像服务器的特点是无状态,可以部署多个,玩家请求哪一个都能得到结果,避免单点出问题;

    九、几种游戏类型架构图

    1:ARPG类型游戏
    在这里插入图片描述

    2:MMORPG
    在这里插入图片描述

    3:MOBA
    在这里插入图片描述

    4:卡牌类
    在这里插入图片描述

    5:棋盘类

    在这里插入图片描述

    总结

    以上便是我们的分布式游戏服务器架构,简单的介绍了一下。后期,我们会针对架构中的不同服务器角色的框架代码进行单独介绍,包括其中用到的技术与实现方式,并且和其他的框架进行比较学习。

  • 相关阅读:
    百度知道问答聚合采集软件反爬版说明文档/Python采集脚本
    Spring MVC中通过配置文件配置定时任务
    近2万签名的句子网络签名ACCESS\EXCEL数据库
    Flink核心API之DataSet
    第7章 - 多无人机系统的协同控制 --> 无人机模型分析
    关于联想笔记本插上有线耳机没有声音的经历(一)
    终于有人把操作系统、网络系统、线程进程、IO模型全部总结出来了
    代码随想录笔记_动态规划_139单词拆分
    群体智能的实现与优化: 使用Metal技术在Swift中打造高效模型
    教你实现多线程案例定时器
  • 原文地址:https://blog.csdn.net/qq_44918090/article/details/126494287