目录

1、服务器架构演变的最主要的原因是

2、典型的服务器架构介绍

3、流行的服务器介绍

4、关于服务器架构分布式的看法

5、总结


今天写一下游戏服务器的架构,主要还是还是分析下服务器架构的原理,以及解决的问题

1、服务器架构演变的最主要的原因是

  1. 1、解决压力的问题,想用较低的价值组合完成任务,也就是一堆垃圾服务器组成集群完成任务。

  2. 2、解决业务需求,比如这种跨服的需求,如果不单独做一个服务器,业务交互将及其复杂

2、典型的服务器架构介绍

下图基本上是苏州这边游戏公司的服务器架构图。

  1. 服务器说明:

    Web:web 服务器就是一个简单的tomcat服务器,连接游戏的数据库,主要负责登录、创角、充值、GM命令、运营后台操作入口,业务相对来说比 较简单,同一公司这个服务器都是相同的。

    Gate: 网关服,网关服是管理所有的连接,负责解析数据包、加解密、超时处理和一定逻辑处理,这样可以提前过滤掉错误包和非法数据包,转发消息到对应的服务器,比如移动消息发送到场景服,玩家的升级操作发到游戏服。逻辑也相对比较简单。

    Game:游戏服,游戏服是承载所有游戏逻辑的服务器,也是平常开发最常使用的服务器。

    Scene: 场景服,主要负责玩家所在场景内的逻辑,比如玩家视野的同步等等

    platform :主要负责一些跨服玩法,多个服务器连接同一个平台服。比如跨服活动等。

    fighter:战斗服,也可以叫做房间服,比如匹配进入玩法,创建房间,或者战斗房间,房间结束之后把战斗结果传到游戏服进行判定

  2. 流程说明:

  • 登陆流程:玩家登陆时首先连接web服,进行登陆,验证成功后,会将玩家登陆的token 放到Gate服。然后玩家连接Gate服登陆到Game服。

  • 战斗流程:玩家在Game服发起战斗,比如匹配战斗,则在Game服上匹配,然后送入Fighter 战斗服进行战斗,此时所有的战斗消息从Gate服直接路由到Fighter服,战斗结果发送给Game服,然后进行发奖等逻辑

  • 玩家移动流程:玩家移动消息同步给Scene服,Scene服每一帧同步给所有的玩家

3、流行的服务器介绍

1、Skynet  云风开源的基于actor 的开源引擎,脚本语言是lua,有不少公司在用,优势就是上手容易。

2、pomelo/pinus  Pomelo 是由网易开发的基于 [Node.js] 开发的高性能、分布式游戏服务器框架, 也可作为高实时 Web 应用框架。pinus 是pomelo 的ts 版本,ts的开发效率和调试效率更高,脚本更规整,建议大家选用pinus,前段时间和网易的大佬聊,他们项目现在就在用pinus

3、KBEngine

一款开源的游戏服务端引擎,客户端通过简单的约定协议就能与服务端通讯, 使用KBEngine插件能够快速与(Unity3D、UE4、OGRE、HTML5、等等)技术结合形成一个完整的客户端。

服务端引擎层使用C++编写,游戏逻辑层使用Python(支持热更新),开发者无需重复的实现一些游戏服务端通用的底层技术, 将精力真正集中到游戏开发层面上来,快速的打造各种网络游戏,之前创业的时候用过的引擎,引擎已经商业化,现在叫comblock

4、关于服务器架构分布式的看法

1、没有必要的分布式,全是傻逼。简单的服务器能搞定的就不要搞什么复杂的架构,听叔的,你把握不住。

2、能通过现有的技术能搞定的就不要自己搞,搞到最后一地鸡毛,有轮子用就用就好了,你的游戏还到不了技术的极限,心理有点逼数

3、分布式很香,但是需要技术做支撑,也存在很多问题,能多开几组服搞定的,就多开几组服,别瞎折腾

4、分布式服务器的架构开发调试麻烦,尽量少用。

5、总结

所有的服务器架构都是为业务而存在,从游戏出发,根据需求扩展自己的服务器架构。

下期我们从头简单的写一个tcp 服务器

一文告诉你游戏服务器的架构到底是什么样,各服务器的职责是什么相关推荐

  1. 阿里大佬告诉你,支付宝的架构到底有多牛逼!还没看完我就跪了!

    自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限. 2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为 ...

  2. 一文告诉你Java日期时间API到底有多烂

    前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...

  3. 《游戏服务器的架构演进》阅读笔记

    游戏服务器特征 游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定点的网络请求.所以这类软件的特点是要非常关注稳定性和性能.这类程序如果需要多个协作来提高承载能力,则还要关注部署和 ...

  4. 游戏服务器的架构演进

    本文阅读预计需要10分钟,主要技术点来如下,感兴趣请继续: 游戏服务器特征 短连接游戏服务器架构 长链接游戏服务器架构 分区分服服务器架构 MMOARPG服务器架构 房间服务器架构 一.游戏服务器特征 ...

  5. 游戏服务器的架构设计(一点参考,实际价值似乎不大……)

    游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的 ...

  6. 一个手机游戏服务器的架构

    原文: http://www.youxijishu.com/blogs/19.html 说起来游戏服务器的开发,是一个非常宏大的命题.到如今谁也说不清楚服务器到底是一个什么.无非就是游戏逻辑计算,数据 ...

  7. 游戏服务器的架构演进、多进程架构通信

    系列文章目录 文章目录 系列文章目录 前言 一.游戏服务器特征 二.游戏服务器架构要素 三.服务器演化进程 1.卡牌等休闲游戏弱交互游戏 2.长链接游戏服务器 1.第一代网游服务器(单线程无阻塞) 2 ...

  8. 告诉你游戏服务器到底是什么

    第一部:游戏服务器的定义  在线游戏当中,如果有'在线'则一定会跟随'游戏服务器'.但关于游戏服务器却并没有什么较好的评价,在致歉文中最常见的单词也是'服务器'.游戏进行不畅时也会经常说是'服务器不稳 ...

  9. 基于内存,redis,mysql的高速游戏数据服务器设计架构

    1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的:首先保证数据的可靠,防止数据丢失, ...

最新文章

  1. vivado----fpga硬件调试 (六)----数据导出
  2. jsp定义一个变量在html,jsp中变量及方法的声明与使用说明
  3. IDEA运行VUE项目
  4. Python中url的编码以及解码
  5. 网页设计上机考试原题_计算机二级考试即将到达战场,各单位准备!!!!
  6. [C++STL]C++ 实现map容器和set容器
  7. jmeter环境部署
  8. js版palppy brid代码_从 JS 引擎到 JS 运行时(上)
  9. JAVA:Failed to load the JNI shared library 解决方法
  10. 【BIM入门实战】渲染器Vray for 3d max 2018图文安装教程
  11. oracle区分度公式,区分度越大的列,作为主导列,索引效果越好?
  12. 浅析markdown和富文本编辑器
  13. github copilot插件安装
  14. php网站鼠标美化,几款耐用的鼠标指针皮肤,简约清新
  15. 浅谈对软件工程的认识与理解
  16. vivado下载地址和ISE下载地址
  17. Python测试题20道(含答案)
  18. 润乾报表如何解决F5负载均衡设备下URL限制问题
  19. 什么是SaaS系统,谈谈SaaS的好处
  20. Delphi UAC生成默认以管理员身份运行的可执行程序

热门文章

  1. 加密过的计算机硬盘怎么解密,如何解开硬盘密码--MHDD热交换法解密
  2. Linux tar/rpm/yum命令软件安装
  3. 微信小程序体验版,手机打开调试正常访问 关闭调试访问不通
  4. Linux下如何修改host文件
  5. phpstorm2019--设置自动换行
  6. 云浮高考成绩查询2021,云浮市2021年高考顺利落幕!
  7. __FILE__显示全路径的问题
  8. STM32F103单片机驱动TM1637数码管显示模块
  9. Proxifier Socks5 代理(内网访问、远程办公)
  10. 歌德巴赫猜想---java