`

游戏服务器并发方案

阅读更多
  1. 所有的对象都放在内存,20万用户以下无压力。

     

  2. 如果游戏的用户很多,例如超过50万,内存就会不够,可使用LRU算法来淘汰一些数据。

    流程:收到用户请求 - 在内存查找用户对象 - 如果不存在就从数据库中加载- 放入内存cache-如果cache中的用户超过20万 - 用LRU算法淘汰最古老的用户数据。

     

  3. 避免同步的IO操作,所有会发生写数据库的操作:例如角色获得了经验,要更新数据库;这类和游戏逻辑相关、安全性要求不高的保存操作,一律用异步操作,由后台的数据库保存线程定期保存。

    流程:如果要保存到数据库 - 检查该对象是否已有标志为在保存队列中 - 如果为假 - 将对象放入保存队列。 后台保存线程的流程:从队列中获取要保存的对象 - 保存 - 置保存标志位为假。

     

内存cache + 异步保存模式,并发 每秒1000+ 不会有任何压力,而且正常情况下每个请求的处理时间不会超过50毫秒。

 

邮件操作一定产生大量IO操作,而且都是同步操作,可用上面的cache机制处理,或者专门的邮件服务器。

 

如果是DNF之类的格斗类游戏,因为对系统响应的时间要求特别高,50毫秒都嫌慢,这种情况下,瓶颈是在网络上,可用UDP包来解决。搜索UDP,有大量文档。

 

如果用户数是海量的,例如超过500万,或者对并发的要求更高,例如每秒5000+次请求,这种指标明显超过了单机的处理能力,这个时候就必须采用分布式结构,使用多台服务器。可参照EJB二次远程调用的原理实现多机分布式结构,搜索EJB,也有大量文档。

 

分享到:
评论

相关推荐

    用线程池解决服务器并发请求的方案设计

    ### 用线程池解决服务器并发请求的方案设计 在当今互联网时代,服务器需要处理来自全球各地用户的海量请求。为了确保服务器能够高效、稳定地运行,必须具备良好的并发处理能力。传统的单线程模型已无法满足高并发...

    游戏服务器部署.doc

    网络游戏服务器部署是一个复杂而关键的过程,它涉及到多个服务器类型,以确保游戏的稳定运行和玩家体验。游戏服务器架构主要包括WEB/FTP服务器、认证/计费服务器、网关服务器、游戏服务器、地图服务器和数据库服务器...

    高并发解决方案

    高并发场景通常出现在互联网服务、电子商务、社交媒体、在线游戏以及大数据处理等领域。以下是对高并发解决方案的详细探讨: 1. **负载均衡**:当用户请求过多时,单台服务器可能无法承受,此时需要多台服务器共享...

    基于c#开发的游戏服务器端

    总的来说,基于C#开发的游戏服务器端涉及到网络编程、并发处理、数据存储和游戏逻辑等多个方面的知识。理解并熟练掌握这些技能,能帮助开发者构建出稳定、高效的游戏服务器,为用户提供流畅的游戏体验。

    集群式游戏服务器架构方案设计开发 .doc

    集群式游戏服务器架构方案设计开发是一项复杂而关键的任务,它涉及到多方面的技术和策略。在设计过程中,首要关注的是如何最大化地提升并发处理能力和系统稳定性,同时确保资源的有效管理和利用。 线程是服务器处理...

    Lua游戏服务器框架开源源码-----crossover

    crossover,作为一款基于Lua的游戏服务器框架,为开发者提供了一种高效、灵活的构建游戏服务的解决方案。本文将深入探讨crossover的核心特性、架构设计以及如何运用到实际项目中。 首先,我们要理解crossover的基本...

    网络游戏服务器设计

    通过使用EPOLL,网络游戏服务器可以有效地处理成千上万的并发用户,提高响应速度,降低延迟,提升玩家的游戏体验。同时,由于Linux系统的开源特性,EPOLL机制可以灵活地进行定制和优化,适应不同游戏的需求,降低了...

    2.1.7 使用Golang实现万人同服的游戏服务器@袁锋峰.pdf

    本文将详细介绍使用Golang实现万人同服的游戏服务器,涵盖游戏服务器开发面临的挑战、游戏服务器设计面临的挑战、高并发TPS、高可用玩家对服务的可用性、低延迟忍受度、数据读写频度高、安全检查、高并发之道、高...

    制定服务器租用方案需要考虑的一些因素.docx

    在制定服务器租用方案时,企业需要考虑众多因素以确保选择最符合自身需求的服务。首先,根据租用时长,方案通常分为短租、长租和递增三种类型。短租适合初创公司,以减轻初期资金压力;长租则提供折扣优惠且减少续费...

    游戏服务器引擎C#源码

    它的类型安全性和垃圾回收机制有助于减少运行时错误,并自动管理内存,这在处理大量并发连接的游戏服务器中尤为重要。此外,C#的.NET Framework提供了丰富的类库,如System.Net用于网络通信,System.Collections用于...

    Go-go高性能游戏服务器框架

    总结,《Go-go高性能游戏服务器框架》是结合Go语言特性打造的一款专业级游戏服务器解决方案,它通过分布式系统、高效网络通信和强大的状态管理,为开发者提供了一个高效、稳定的开发环境,助力实现高质量的网络游戏...

    Go语言游戏服务器框架【Leaf Server】

    Leaf Server是基于Go语言开发的游戏服务器框架,其设计目标是为游戏开发者提供一个稳定、高效、易用的后端解决方案。框架集成了常见的游戏服务器功能,如网络通信、游戏逻辑处理、数据持久化等,并且支持多种数据库...

    netty游戏服务器核心

    综上所述,"netty游戏服务器核心"项目利用了 Netty 的强大功能来构建游戏服务器的核心层,提供了一种高效、稳定、易维护的解决方案。通过学习这个项目,可以深入理解 Netty 在游戏服务器开发中的应用,以及如何构建...

    基于EPOLL机制的LINUX网络游戏服务器实现方法.pdf

    "基于EPOLL机制的LINUX网络游戏服务器实现方法" 本文主要讨论了基于...基于EPOLL机制的LINUX网络游戏服务器实现方法是一种有效的解决方案,可以提高服务器的性能和稳定性,满足玩家的需求,是一种值得推广的技术。

    Java并发编程与高并发解决方案-学习笔记-www.itmuch.com.pdf

    高并发系统通常需要支持大量用户的实时请求,如在线游戏、社交网络、电商平台等。 ### CPU多级缓存与缓存一致性 CPU的多级缓存结构是现代处理器设计的关键组成部分,它主要由一级缓存(L1)、二级缓存(L2)和三级...

    Go-go分布式游戏服务器架构基于内存mmo

    综上所述,"Go-go分布式游戏服务器架构基于内存mmo"是一个利用Go语言的强大并发能力,结合Snowflake64生成唯一ID、AI行为树实现智能逻辑、Redis提供高速缓存的高性能MMO游戏服务器解决方案。通过gonet框架,开发者...

    网络游戏服务器端编程.pdf

    实际上,针对网络游戏服务器端编程,还需要根据具体的项目需求、团队技能栈和目标平台等要素,来选择合适的技术方案和开发工具。如果想要深入了解具体的技术细节,建议阅读相关的编程教材或参考具体的开源项目代码。

    网游服务器通信架构方案

    网游服务器通信架构是网络游戏开发中的核心...设计良好的架构能够提供流畅的游戏体验,支持大量并发用户,并保证数据的安全和一致性。对这一领域的深入理解和实践经验,对于网游行业的“专家型”开发者来说至关重要。

    游戏服务器框架

    游戏服务器框架是构建在线游戏后端的核心组成部分,它负责处理玩家的交互、游戏逻辑、网络通信、资源管理等任务。本框架设计的目标是提供高效、稳定且可扩展的游戏服务环境,便于开发者快速实现游戏功能并优化性能。...

    python实例-机器学习-游戏服务器聊天系统甄别方案

    在本项目"python实例-机器学习-游戏服务器聊天系统甄别方案"中,我们将探讨如何利用Python编程语言和机器学习技术来构建一个高效的游戏聊天系统过滤机制,旨在识别并阻止垃圾信息的传播,以维护良好的游戏环境。...

Global site tag (gtag.js) - Google Analytics