文章目录

  • 一、 架构图
  • 二、 通信协议
  • 三、 数据存储服务器
  • 四、 中心服务器
  • 五、 网关服务器
  • 六、 单区服务器
  • 七、 跨区服务器
  • 八、 镜像服务
  • 九、几种游戏类型架构图
  • 总结

一、 架构图

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

  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:棋盘类

总结

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

ARPG、MMORPG、MOBA、卡牌类、棋盘类游戏服务器架构图相关推荐

  1. 理解MMORPG、回合制、ARPG、SLG、Roguelike、卡牌、竞技类

    Overview They are all game genre. MMORPG Massively Multiplayer Online Role-Playing Game (MMORPG) 大型多 ...

  2. [Unity3D]卡牌游戏中有关卡牌类的制作

    文章目录 展示卡牌 卡牌展示效果 打出卡牌 敌人释放技能 需求 制作 流程 抽牌: 弃牌: 一些问题 抽牌 查看卡牌 查看抽牌堆 查看弃牌堆 卡牌效果的实现 还没学到设计模式,所以自己和同学捣鼓了一个 ...

  3. 04.卡牌交换逻辑对象池

    01.对象池 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;/ ...

  4. C语言实战小项目(传统卡牌游戏)

    扑克牌游戏 游戏规则在程序开头有注释 C语言初学时写的,逻辑较多,仅供娱乐~~~ 代码 #include <stdio.h> #include <stdlib.h> #incl ...

  5. IOS对战卡牌《梦回水浒》抢先体验

    <梦回水浒> 是一款水墨风格的即时对战卡牌手游.该游戏以水浒108将为人物原型,引入阴阳五行学说,结合独创的多种对战玩法,给玩家带来不一样的游戏体验.不同于一般的卡牌游戏,在<梦回水 ...

  6. 潮卡热血HBIC海贼王NFT卡牌到底是什么?

    从资本的追捧,到科技巨头纷纷入局,再到A股市场元宇宙概念股持续暴涨,游戏.社交.短视频等,元宇宙概念产物层出不穷.在追捧者眼中,元宇宙是今年当之无愧的"风口". 2021年是元宇宙 ...

  7. cocos 卡牌类_优质链游大爆发,Cocos-BCX版《恶龙必须死》有什么特别之处?

    作者 | 拜占庭骑兵 审稿 | @NowGame 出品 | 比特魔方 近期沉寂了许久的链游引来一波新游上线.有日流水几十万人民币的<ChainZ Arena>,活跃度前排的<加密三国 ...

  8. 当年的三国java游戏_三国卡牌类手游塞班 分享问几年前玩的一个三国

    分享问几年前玩的一个三国卡牌手机游戏,好像是塞班...分享问几年前玩的一个三国卡牌手机游戏,好像是塞班,或者安卓的,单机的...是塞班的,之前也玩过.里面有霹雳车,攻城云梯,什么的.骑兵,枪兵,盾兵, ...

  9. 2023 女神猛将传3D卡通竖版三国卡牌回合类手游Win服务端源码

    一款3D卡通竖版三国卡牌回合类手游,2023年5月3日最新打包Win服务端源码,其他精品游戏论坛的源码,不能保证是否有bug和漏洞!请自行查毒,自行研究!

  10. 卡牌类手游源码 刀塔传奇 免费分享 基于cocos2d-x3.0引擎开发

    卡牌类手游源码 刀塔传奇 免费分享 基于cocos2d-x3.0引擎开发 https://bbs.wxrym.com/thread-90118-1-1.html (出处: 外星人源码论坛) 今天给大家 ...

最新文章

  1. 基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
  2. Win2008 R2 WEB 服务器设置之禁用不必要的服务和关闭端口
  3. NOIP模拟赛10 题解
  4. update se_Java SE 7 Update 25 –发行说明进行了解释。
  5. [前台]---js获取input标签中name相同的各个value值
  6. react native仿微信性别选择-自定义弹出框
  7. 计数后打印垂直柱状图(洛谷P1598题题解,Java语言描述)
  8. React学习笔记 - 组件Props
  9. Spring: Export - WAR file - 404 Not Found 问题
  10. IOS 获取软件版本号的方法
  11. android-sdk环境变量配置
  12. idea打包Jar包
  13. 什么是网络操作系统?网络操作系统具有那些基本功能?
  14. 微信群二维码被动加了100人了还怎么扫码进入?
  15. CSS-----颜色值的缩写和字体的缩写方法
  16. 关于PDF文件无法打印的问题的解决办法
  17. 【Alpha阶段】第四次scrum meeting
  18. python水果超市管理系统_java实现水果超市管理系统
  19. IRQL-NOT-LESS-OR-EQUAL异常分析
  20. Lect2_MDPs

热门文章

  1. EXCEL 如何删除重复值,并保留重复值的第一个选项
  2. marked is not a function问题解决
  3. java开发微信抢红包挂_java实现微信抢红包算法
  4. 大型网站--负载均衡架构
  5. #467 – 使用UniformGrid 均分行和列(Use a UniformGrid for Evenly Spaced Rows and Columns)
  6. AR小项目的制作过程(一)
  7. excel中插入的图表保存时提示 无法保存 html,Excel技巧:将图表另存为GIF文件
  8. 坐标上海,我看见这群开发者用热爱改变世界
  9. JavasScript 第二天课 课后笔记 2022.3.26
  10. 操作系统进程进行系统调用详细过程