游戏服务端架构学习笔记

本文介绍了游戏服务器的本质,强调其作为长连接的socket服务器特性。讨论了游戏服务器的场景分区策略,以满足高实时性和可伸缩性需求。此外,文章探讨了分布式开发的挑战,如多进程管理、RPC调用和高可用性,并展示了典型的游戏服务器运行架构,包括前端和后端服务器的职责划分。
摘要由CSDN通过智能技术生成

一 概述
 
游戏服务器的本质就是基于长连接的socket服务器。 它利用socket通讯来实现服务器与客户端之间的交互。事实上有不少游戏是直接基于原生socket来开发的。

相对于简单的socket服务器,它承受着更加繁重的任务:

  • 后端承载着极复杂的游戏逻辑。
  • 网络流量与消息量巨大,且实时性要求高。
  • 通常一台socket服务器无法支撑复杂的游戏逻辑,因此往往使用一个服务器集群来提供服务。

游戏应用只能使用长连接,原因如下:

  • 通讯的双向性,游戏应用不仅仅是推拉模式,而且推送的数据量要远远大于拉的数据量
  • 响应的实时性要求极高,一般游戏应用要求推送的消息实时反应,而实时响应的最大时间是100ms。

二 场景分区

游戏交互跟玩家所在地图(场景)上的位置关系非常大,如两个玩家在相邻的地方可以互相PK或组队打怪。这种相邻的交互频率非常高,对实时性的要求也非常高,这就必须要求相邻玩家在分布在同一个进程里。于是就有了按场景分区的策略,即一个进程里可以有一个场景,也可以有多个场景。

这种实现带来了游戏的可伸缩性受到场景进程的限制,如果某个场景过于烦忙可能会把进程撑爆,也就把整个游戏撑爆。场景服务器是有状态的,每个用户请求必须发回原来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值