MMORPG服务器架构

本文探讨了如何在MMORPG(大型多人在线角色扮演游戏)服务器架构中利用信号驱动I/O提高效率。通过设置信号处理函数,使得进程在数据准备就绪时接收到SIGIO信号,而非阻塞等待。在信号处理函数内部,可以及时执行I/O操作,以非阻塞的方式处理游戏服务器的数据交互。
摘要由CSDN通过智能技术生成
一.摘要

1.网络游戏 MMORPG 整体服务器框架,包括早期,中期,当前的一些主流架构
2.网络游戏网络层,包括网络 协议 , IO 模型,网络框架,消息编码等。
3.网络游戏的 场景 管理, AI 脚本 的应用等。
4. 开源 的网络服务器引擎
5.参考书籍,博客

二.关键词

网络协议 网络IO 消息 广播 同步 CS TCP/UDP IP 集群 负载均衡 分布式 
网关服务器 GateServer 心跳 多线程/线程池 开源网络通讯框架/模型

阻塞/非阻塞/同步/异步    Proactor/Reactor/Actor Select/Poll/Epoll/Iocp/Kqueue 
游戏开发中的设计模式/数据结构

短连接和长连接 游戏安全 缓存 消息编码协议 脚本语言 
Socket Nagle/粘包/截断/TCP_NODELAY AI/场景 分线/分地图 开源MMORPG服务器


三. 框架结构

1.    早期的MMORPG服务器结构

Client<->GameServer<->DB    所有业务,数据集中处理

优点 :
简单,快速开发
缺点:
     1.所有业务放在一起,系统负担大大增加.一个bug可能导致整个服务器崩溃,造成所有玩家掉线甚至丢失等严重后果。
     2.开服一刹那,所有玩家全部堆积在同一个新手村.->>>>卡,客户端卡(同屏人数过多渲染/广播风暴) 服务器卡(处理大量同场景消息/广播风暴)
2.    中期-用户分离集群式

                GameServe1
Client            |                    DB
                GameServer2

玩家不断增多-> 分线 ->程序自动或玩家手动选择进入
缺点 :运营到后期,随着每条线玩家的减少, 互动大大减少。

3.    中后期 数据分离集群式
按地图划分服务器,当前主流
     新手村问题
            天龙八部 》提出了较好的解决方案,建立多个平行的新手村地图,一主多副,开服时尽可能多的同时容纳新用户的涌入,高等级玩家从其它地图回新手村只能到达主新手村。

4.    当前主流的网络游戏架构


         注:在GateServer和CenterServer之间是有一条TCP连接的。而GameServer和LogServer之间的连接可以是UDP连接。这是有一个大概的图,很多地方需要细化。
GateServer:网关服务器,AgentServer、ProxyServer

  优点
    (1)作为网络通信的中转站,负责维护将内网和外网隔离开,使外部无法直接访问内部服务器,保障内网服务器的安全,一定程度上较少外挂的攻击。
    (2)网关服务器负责解析数据包、加解密、超时处理和一定逻辑处理,这样可以提前过滤掉错误包和非法数据包。
    (3)客户端程序只需建立与网关服务器的连接即可进入游戏,无需与其它游戏服务器同时建立多条连接,节省了客户端和服务器程序的网络资源开销。
    (4)在玩家跳服务器时,不需要断开与网关服务器的连接,玩家数据在不同游戏服务器间的切换是内网切换,切换工作瞬问完成,玩家几乎察觉不到,这保证了游戏的流畅性和良好的用户体验。

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值