欢迎来到 聊城市某某工业设备售后客服中心
全国咨询热线:020-123456789
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
《百万在线 大型游戏服务端开发》前两章概念笔记
  来源:聊城市某某工业设备售后客服中心  更新时间:2024-05-08 12:18:22

《百万在线 大型游戏服务端开发》前两章概念笔记

游戏网络通信的百万流程则是服务端先开启监听,等待客户端的连接,然后交互操作,最后断开。
在这里插入图片描述

套接字

每个Socket都包含网络连接中一端的线大型游戏服信息。每个客户端需要一个Socket结构,服务端则需要N+1个Socket结构,其中N为客户端的前两连接数,另外一个是服务端打开监听的套接字。

单线程事件模型(Reactor模型)

单线”指的章概是单线程,“事件”指的是事件触发,即当新连接 、断开连接 、念笔收到数据这些事件到来时会触发某段代码。百万
在这里插入图片描述

一致性问题是线大型游戏服分布式系统的一大难题

可能会出现很多异常情况:重复执行等,需要保持一致性;

操作系统

单个程序中可能会存在一些阻塞语句让CPU空闲,开启多个程序可以填补CPU的空闲时间。比如:

如果程序中不包含阻塞语句,且运行在单核CPU下,同台物理机下部署多个程序是前两不能提升性能的。不过当代大多是章概多核CPU,可以同时执行多个程序,因此在非阻塞程序中,开启与CPU核心数相当的进程可以充分利用CPU 。

阻塞为什么不占用CPU

常见的念笔一些阻塞函数:等待客户端连接的函数,接收数据的函数等。那阻塞为什么不会占用CPU资源呢:
操作系统会分时执行各个运行状态的百万进程,由于速度很快,看上去就像是在同时执行多个任务 。
阻塞了会到等待队列,等到条件成立(比如等待一段时间)操作系统会重新将进程A放入工作队列中,继续执行 。线大型游戏服
在这里插入图片描述

切换线程

CPU切换线程需要做很多工作,它执行一条语句大概需要几纳秒,完成一次线程切换大概需要几微秒,花销较大 。前两开启的章概线程数越多,CPU就需要做更多的切换工作,这会使响应变慢 。

网络模块的念笔底层实现有两种方式:

1)每当有新的客户端连接时,开启新线程处理该客户端。
2)使用多路复用技术,所谓“多路”,指的是服务端可以阻塞(如使用epoll_wait)等待多个客户端的连接,有任何一个收到数据即返回。
Web服务器可以用这两种方法,但游戏服务端大多只会用第2种方法 。这是因为Web服务器都是短连接发送消息后即断开,同时在线的客户端很少;游戏服务端大多是长连接,同时在线的玩家很多,方法1只能支持数百名玩家。

难以分割的业务

实现分布式程序的前提是游戏逻辑能够分割 。如果游戏规则复杂,各个功能紧密相连,则不容易找到分割的方案。

actor

合理分割功能是分布式模型的一大难点,我们需要寻找一种模式,它既能符合游戏逻辑的表达,又能让计算机高效执行。传统的多进程方式很多场景不能满足游戏逻辑的表达;

每个Actor都会包含自身状态(HP  、Coin),以及一个信箱(消息队列),Actor通过给其他Actor“寄信”来实现通信。至于收到信件后的反应,取决于收信的Actor 。

在这里插入图片描述
在这里插入图片描述

由于各个Actor相互独立,计算机很容易让它们并行工作 。

对游戏服务端而言,Actor并发模型给游戏业务的分割提供了灵活性。

Skynet的强项在于单个节点内的并行运算

启动流程

在这里插入图片描述

skynet.socket模块

socket.read中所谓的阻塞模式和skynet.call一样,都利用了Lua的协程机制 。调用socket.read,服务有可能被挂起,直到接收到数据,才会往下执行。

skynet协程

Skynet服务在收到消息时,会创建一个协程,在协程中会运行消息处理方法(即用skynet.dispatch设置的回调方法)。这意味着,如果在消息处理方法中调用阻塞API(如skynet.call skynet.sleep 、socket.read),服务不会被卡住(仅仅是处理消息的协程被卡住),执行效率得以提高,但程序的执行时序将得不到保证。
在这里插入图片描述


友情链接dnf打字发不出去怎么回事探索宽容之路:《魔兽世界》中刃拳的宽容任务完成方法王者荣耀大佬救命怎么获得王者荣耀S19赛季还多久开始 S19赛季具体时间古代神话中最厉害的十大妖怪都是谁?你知道吗王者荣耀:想做一个合格的打野,千万不要犯这五个错误淘宝差评,看卖家机智回复,逗死我了DNF巫女技能来源揭秘 dnf女圣职韩服转职曝光和平精英NBA Style联动活动介绍三国杀银两能干嘛武将在哪买 武将推荐和获取方法详解寻仙手游风云劫境 隐藏任务盘点详细解析dnf圣职者第五职业叫什么(DNF盘点各角色第五职业现状)魔兽世界6.0生存猎人天赋加点和宏分享王者荣耀 S22澜强度不在,镜跌落神坛,曾经的“T0野王”再次回归!哪些武将胜率和脑杀不一样?三国杀OL武将强度评分SP武将篇(只限军争)[综合]联盟能买到的练金配方全攻略侏儒布甲幻化,魔兽世界侏儒术士幻化哪身套装最好看王者荣耀心悦特权会员在哪里开 怎样才能成为心悦会员77233游戏(7723游戏盒)玩了10年头一次感觉DNF 玩不下去了王者荣耀S22新赛季最强几位边路霸主,上王者有手就行?安卓破解游戏平台推荐 安卓破解版手游平台哪个好三国杀银两能干嘛武将在哪买 武将推荐和获取方法详解盘点2022年最好平板电脑:除了iPad还有这几款平板值得入手|2022买哪款平板电脑好dnf男气功刷图加点 dnf男气功pk加点详解王者荣耀赛季s22什么时候结束 s22赛季结束时间详情破碎的剑柄和破碎的剑刃怎么合成(破碎的剑柄)《QQ飞车》手游羊驼绵绵技能怎么样 羊驼绵绵技能介绍【酒馆攻略】新版职业技能加点(下)法攻篇王者荣耀大乔怎么出装厉害-大乔完美出装推荐Hammer on-demand onboarding如何克制狮子狗? 狮子狗雷恩加尔克星完全解析DNF:体验服2个细节暗改!神兽龙袍并没有绝版,1万金币就能转换玩家视角下的DNF剧情 第十部分 时空之门一王者荣耀云缨巡街天堂引路人猎人宠物技能大全:魔兽世界怀旧服猎人宠物技能大全真三国无双7六星武器一览表,真三国无双7 6星武器貂蝉第13集刚过主线一穷二白的实际操作—用女王密令开庄园DNF时装分解有什么用-时装分解作用
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.2357

Copyright © 2024 Powered by 聊城市某某工业设备售后客服中心   sitemap