做游戏与web的区别 - 游戏与Web的服务器对比

本文探讨了游戏服务器与Web服务器在状态管理、数据传输格式上的关键差异。游戏服务器因状态的存在,需谨慎使用资源,而Web服务器通过事务确保数据一致性。此外,Protobuf在游戏服务器中的应用提高了数据传输效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://ju.outofmemory.cn/entry/367750

3.1 状态
首先要提到的就是状态。可能你会听说过一个概念,游戏服务器是有状态的,而Web服务器是无状态的。什么意思呢?Web服务器的数据流大多直接会到数据库中。而游戏服务器的数据流首先会到内存中,然后定期的写入数据库(落地)。

换句话说,游戏服务器本身的数据与数据库中的数据在运行期间会存在一个数据不一致的窗口。如果此时游戏服务器宕机了,那么就会造成数据首先到的内存数据与数据库存的数据不一致。

而Web服务器则不会有这样的问题,Web所有的数据状态都会落地,而且可以针对操作加上事务,不用担心因为操作失败而引入脏数据。正因为有了状态的约束,游戏服务器就会很慎重的使用内存、CPU。以求在资源有限的情况下,最大化的提高的承载量,并且降低服务延迟。当然,Web服务器会为了降低某个接口的响应时间而去做对应的优化。

3.6 数据传输格式
熟悉Web的都知道,数据传输格式是JSON。而在游戏服务器中是Protobuf,是由Google开发的数据传输格式,与JSON类似。Protobuf是二进制的,二进制数据量会比JSON更小一点。而且,如果传输的字段是空值,就不会被传输。而JSON如果是空值,一样的也会被传输。

无论是在什么样的环境中,举个例子,Node.js和Java中,Protobuf的性能表现都比JSON好。在Java中,Protobuf甚至要比JSON快了接近80%。如果Java的服务之间通信有了性能瓶颈, 可以考虑服务之间使用RPC来通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值