首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再谈游戏服务器架构

接下来我们来看看服务器架构是如何处理好以上几点的。 ?...通过attach操作获得数据(attach可能是通过服务器通讯框架skynet,也有可能直接mmap到共享内存sharedb上以获得数据)。...三、服务器底层框架skynet skynet的设计思想见《Skynet 设计综述》: 我希望我们的游戏服务器(但 skynet 不仅限于用于游戏服务器)能够充分利用多核优势,将不同的业务放在独立的执行环境中处理...本人感觉skynet像一个发布订阅的消息中间件(还没看源码,可能有误),这种基于服务的即插即用式的框架服务器端带来很大的可扩展性,同时也使得各模块之间独立清晰,具有良好的可维护性。...后来的商品交易, 掉落品分配也是 skynet 下的服务. ” (2) 关于场景服务器已经给出完整的说明,见《开发笔记(14)》 场景服务分成两个部分,一是副本管理器,二是地图服务。

4.4K131
您找到你想要的搜索结果了吗?
是的
没有找到

go实现一个简单的游戏服务器框架(lotou)起源

最近一直想学习一些关于游戏服务器的知识,显示看了一下skynet框架,从而对于一个游戏服务器框架有了一个基本概要了解。先来说说我对于skynet的一些理解吧。...skynet理解 skynet只完成了服务器最核心的一部分功能,必须消息分发,必须服务的创建、销毁以及服务间的通信。 skynet中最核心的两个部分,网络和消息分发。...当然,针对服务器还在lua层做了很多重要的处理,这里就不细说了。...,也已经有很多人用skynet写了游戏服务器,但是中最要的一点还是我不太习惯动态语言,使用lua来写代码,让我很没有底气。...通过几天的go语言学习,我决定用它来实现自己的第一个游戏服务器框架,因为以前没有怎么接触过游戏服务器编程,所以就只好模拟一下skynet的行为了。

1.6K120

skynet源码解析(一)——编译运行skynet

要想认识一个框架,首先要做的就是让它跑起来。 skynet是一款基于C跟lua的开源服务端并发框架,这个框架是单进程多线程模型,主要应用于游戏服务端领域,是lua大神所写的。...本文不涉及框架过多的理论知识,只是简单的介绍一下如何编译以及运行skynet。...skynet开源项目地址: https://github.com/cloudwu/skynet 源码下载 git clone https://github.com/cloudwu/skynet.git...正常的话编译是需要一定的时间的,如果编译成功之后就会产生以下3个新的文件,其中skynet就是我们需要的可执行文件,这也是最核心的一个文件。 那么我们如何验证编译的这个文件是真的没问题呢?...那么我们就需要运行一下skynet这个可执行文件。 运行可执行文件 ./skynet example/config 一定要记得需要加个运行参数,这个是运行所需要的配置文件。

38910

银行圈里的起“”涌

科技报道金融云系列专题带你穿梭在计算&资本市场之间,今天就从12月的银行新规讲讲银行“”里雾里的事儿!...计算在银行目前较为普及的NAS以及SAN两种存储技术的加以补充,当一台服务器出现问题,通过计算方式可以将数据存储在其他服务器中,避免数据不可逆向的丢失。...数据“计算在银行业态的应用也得到了业内人士的认可。光大银行丁永建就曾表示,计算在四个方面有显著的效果,一是计算增强了银行IT的数据保护能力、错误容忍度和灾备的恢复能力。...不过对银行这种信息较为敏感的企业,很多专家也提出了建立私有,但无论是私有还是公有计算的发展已经势不可挡。...【科技报道原创】 转载请注明“科技报道”并附本文链接

30310

Unity手游实战:从0开始SLG——本地化篇(五)服务器下发配置

让多语言文本能够在上线后,也能在服务器的控制下解决多语言的显示问题。 1 Sproto协议 在之前的客户端技术选型的文章里我们就介绍过,服务器使用的是SkyNet。...Unity手游实战:从0开始SLG——客户端技术选型 https://zhuanlan.zhihu.com/p/76229685 Sproto 是谷歌Proto的一个变种,是基于SkyNet实现的一种优化格式...之所以选择这个格式是因为SkyNet对Proto的支持只到2.x,并且已经不再维护了。而Sproto更符合目前服务器在Lua端的性能表现。为了配合服务器的通信协议格式,客户端也选择使用Sproto。...而这个时候,数据下发依然可以通过上述的框架结构进行数据增补,每次服务器有屏蔽词下发,就重建一次服务器屏蔽词树,因为服务器增补的条目数一般都很少,几乎不会造成性能问题(即使有也是一瞬间)。...当然这些使用到的都是基于上述的增补框架。 6 运营介入 这部分涉及到的是运营的各种公告和通知。比如紧急停机,突发状况等等,这些都是无法预料的,自然也无法事先将语言或者数据配置在表格中。

1.3K30

coroutine协程库源码分析

实现了一套C语言的协程库,整体背景可以参考其博客。 这个协程库非常轻量级,一共也才200多行代码,使用上更贴近于lua的写法(众所周知,是知名的lua粉)。...协程再细分可以分为有栈协程和无栈协程:我们今天讲的的coroutine,包括微信的libco、GoRoutine,都是属于有栈协程。...但是把这里处理成从第nco位开始寻找(nco代表当前存活的个数。因为一般来说,前面几位最开始都是存活的,从第nco位开始找,效率会更高。...总结 的协程库代码非常简约,可以帮助我们更好的理解协程实现的基本原理。后面有机会也会细讲下微信libco的实现原理,这个更贴近于工业级的使用,用法也非常强大。...基于协程库的协程原理解读 x86-64 下函数调用及栈帧原理

1.5K50

服务器架构分析

今天写一下游戏服务器的架构,主要还是还是分析下服务器架构的原理,以及解决的问题 1、服务器架构演变的最主要的原因是 1、解决压力的问题,想用较低的价值组合完成任务,也就是一堆垃圾服务器组成集群完成任务...2、解决业务需求,比如这种跨服的需求,如果不单独做一个服务器,业务交互将及其复杂 2、典型的服务器架构介绍 下图基本上是苏州这边游戏公司的服务器架构图。 ?...服务器说明: Web:web 服务器就是一个简单的tomcat服务器,连接游戏的数据库,主要负责登录、创角、充值、GM命令、运营后台操作入口,业务相对来说比 较简单,同一公司这个服务器都是相同的。...1、Skynet 开源的基于actor 的开源引擎,脚本语言是lua,有不少公司在用,优势就是上手容易。...2、pomelo/pinus Pomelo 是由网易开发的基于 [Node.js] 开发的高性能、分布式游戏服务器框架, 也可作为高实时 Web 应用框架

1.9K20

Python游戏服务器开发日记(一)目标

到了新的环境,老大让我有空研究下一代服务器技术,作为一个长期任务。        ...新的服务器想达到的目标:        1、分布式系统,对象(Entity)之间的关系类似于Actor模型。        ...我个人极度喜欢skynet框架,由于很多原因,skynet框架几乎不可能修改为Python脚本。...原因除了众所周知的GIL(Python全局锁)问题以外,还有Python的Interpreter是极为重量级的,如果像skynet的独立lua_state那样使用,怕是什么都不做也能把内存全部用光。...但是,在研究了skynet之后,我认为以后必然会大量参考skynet的成熟做法,甚至copy很多C语言层的代码。毕竟和高手对架构的理解,和C语言经验上,实在是差的太多。

2.1K10

skynet源码解析(二)——启动流程

对于你不了解的框架或者引擎,介绍再多的逻辑结构都好像有点茫然的感觉。所以小编认为,最有效的方式就是搞清楚框架启动流程的步骤,让自己心中有一条线可以牵引着。 以下内容转载于网友分享的文档里说明。...启动流程的相关源代码在skynet-src\skynet_main.c 和skynet-src\skynet_start.c 这两个文件中。...skynet_main.c 主要是设置环境和加载配置文件,最后调用skynet_start.c 文件中的 skynet_start() 函数启动 Skynet 服务程序。...工作线程的数量由Skynet 配置文件中的 thread = 8 定义。一般根据服务器的 CPU 核数来设置。 15、skynet_socket_free()释放网络模块。...以上就是skynet框架的启动流程,这里采用的是广度优先遍历的方式进行解析,这个方式对于解析框架来说确实是一种很好的学习方式。我们先不管这个接口内部的具体,我们先了解这个接口是做什么。

27110

动 四点让计算引发全球变革

计算数据安全更为重要 这也是为什么IT专业人员加快计算推广的原因之一。由于数据云端化之后,数据保护方案的实施将会大大简化。...互联网的便捷化也在推动消费寻求更多的数据保护解决方案。 ? 适应的设备日趋全面 当用户拥有了更多的计算机、移动设备和其他的智能设备时,他们就会寻找简单有效的解决方案。...计算全球扩张 目前全球范围内计算的发展并不平衡,原因主要是受到地理和时代发展的因素。 从地理上来看,如美国、英国、澳大利亚等发达国家在计算方面已经进行了多次的先驱革命。...这些国家的消费者都在使用计算的技术,已经经过了群众的适应时间,克服了对未知技术的恐惧开始盛行。所以在这些国家,计算变的非常先进。...发展会更为平衡 而大多数的欧洲国家来讲,的概念更接近一种半怀疑状态。因为欧洲国家对隐私权的保护更为注重,所以公有的发展速度相对那些发达国家会慢一些。

79980

服务器-腾讯服务器

服务器是什么?介绍服务器的性能及服务器的购买流程。服务器是腾讯研发的新一代服务器,所以又称为腾讯服务器。...腾讯服务器可以随时升高或降低配置,当业务流量高峰时期,可以把服务器的配置或带宽增大,来应对流量高峰。流量高峰过去,配置亦可降低,非常便宜,可以有效降低云服务器的开支。...腾讯服务器所有机型免费分配公网IP,50G高性能硬盘(系统盘),腾讯服务器采用 英特尔Ⓡ至强Ⓡ可扩展处理器 CPU负载无限制,利用率最高为100% 。...1.jpg 服务器提供安全可靠的弹性计算服务。 只需几分钟,您就可以在云端获取和启用 服务器,来实现您的计算需求。随着业务需求的变化,您可以实时扩展或缩减计算资源。...服务器支持按实际使用的资源计费,可以为您节约计算成本。使用服务器可以极大降低您的软硬件采购成本,简化 IT 运维工作。

244.8K72

服务器开发语言比较

以下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Windows下可以通过VisualStudio进行开发...:偏少 Skynet(lua+C) 开发效率:基于动态语言的开发初次写比较快,后期维护和重构会耗费一定的时间在查错上 运行效率:基于lua jit的运行效率还是能接受的 部署便捷性:方便, 只有底层修改需要重新编译...从发文时的项目对这些语言使用率来说,Java,Erlang,C++编写的服务器较多,Golang,JavaScript,C#是第二梯队,Skynet由于上手不是很容易,所以仅有两位数的团队在使用,但总体表现还是比较出色的...对于老团队, C++的服务器工具链和框架已经相对成熟, 完全没必要更换新语言, 只是在对接sdk感觉困难时,可以尝试Golang这些对web有优势的语言进行混合语言开发 对于新团队,开发效率,上手度和部署效率是优先选择的...,C#,Golang,JavaScript这些新兴语言会让你事半功倍 对于大规模无需选服的服务器Skynet的actor模型对扩展会比较容易 对于大公司,好项目,上线后需要通过热更新进行bug修补的

1.8K50

服务器开发语言比较

下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Windows下可以通过VisualStudio进行开发...:偏少 Skynet(lua+C) 开发效率:基于动态语言的开发初次写比较快,后期维护和重构会耗费一定的时间在查错上 运行效率:基于lua jit的运行效率还是能接受的 部署便捷性:方便, 只有底层修改需要重新编译...从发文时的项目对这些语言使用率来说,Java,Erlang,C++编写的服务器较多,Golang,JavaScript,C#是第二梯队,Skynet由于上手不是很容易,所以仅有两位数的团队在使用,但总体表现还是比较出色的...对于老团队, C++的服务器工具链和框架已经相对成熟, 完全没必要更换新语言, 只是在对接sdk感觉困难时,可以尝试Golang这些对web有优势的语言进行混合语言开发 对于新团队,开发效率,上手度和部署效率是优先选择的...,C#,Golang,JavaScript这些新兴语言会让你事半功倍 对于大规模无需选服的服务器Skynet的actor模型对扩展会比较容易 对于大公司,好项目,上线后需要通过热更新进行bug修补的

3.5K130
领券