web策略类游戏开发(四)一个可以承载万人在线的架构
web策略类游戏开发(四)一个可以承载万人在线的架构
Webgame现在已经开始需要进入大统一服务器时代,每个游戏区域容纳的玩家数量将从现在的几万人发展到几十万人,因此在新的背景下,webgame如何处理大量用户的请求将成为问题。目前一台asp.net做的weggame服务器每秒能处理500~1000个页面请求,按照每个玩家每隔3~5秒做一次页面操作(页面请求),一台服务器能承受2k~4k的玩家在线,对于一个只有几万人的策略游戏来说,已经是足够了。但对于一个未来将承载几十万人的游戏来说远远不够。
通过分析,玩家在游戏过程中,有80%以上的访问仅仅只是查看玩家在游戏里的状态,实际上真正会对游戏运行状态及数据修改的的页面请求不足20%。因此,我们可以将呈现页面和处理游戏逻辑的功能拆分为2组服务器:页面服务器和逻辑服务器。两者之间可以通过remoting的方式进行数据通讯。将服务器分离后,随着页面服务器的增加,页面访问能力能应该能提升4~6倍。在往上逻辑服务器就会出现访问瓶颈。解决方法可以让页面服务器在读取玩家数据时直接访问数据库或者增加一个对象缓存服务器。页面服务器只有在必要的时候(需要进行逻辑运算时)才访问逻辑服务器,而逻辑服务器在玩家数据发生改变后更新对象缓存服务器和数据库。这样就可以大大降低逻辑服务器的访问次数,使页面访问能力进一步提升,轻松突破万人在线。如果访问量还需要继续扩大,可以用httpd做前台负责相应图片以及css等静态文件。
转载于:https://www.cnblogs.com/yahle/archive/2008/05/04/1181646.html
web策略类游戏开发(四)一个可以承载万人在线的架构相关推荐
- 基于html的策略类游戏开发,基于HTML5的即时战略游戏的设计与实现
摘要: 随着近年Html5技术的逐渐兴起,Web技术变得越来越强大,能做的事情也越来越多.以前Web技术主要运用在建设网站等方面,现在随着Canvas和WebGL技术的出现,越来越多的开发者开始运用H ...
- HTML5游戏开发(四):飞机大战之显示场景和元素
<HTML5游戏开发>系列文章的目的有:一.以最小的成本去入门egret小项目开发,官方的教程一直都是面向中重型:二.egret可以非常轻量:三.egret相比PIXI.js和sprite ...
- 2D平台类游戏开发教程(翻译)
这是一篇实现2D平台类游戏的技术指导文章,原文地址:http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-pla ...
- DirectX游戏开发之一个API玩转音乐
DirectX游戏开发之一个API玩转音乐 当你闭上眼睛,打开一款游戏,如刺客信条,英雄联盟,DNF,或者是当有一个人坐在你背后玩一款新游戏,第一时间吸引你的是什么? 没错,就是各种游戏的音效,包括背 ...
- JavaFX战旗类游戏开发 第一课 概述
用JavaFX开发的地图编辑器已经可以正式使用了.也写了JavaFX读取地图的库,准备抽空实现U3D的地图读取,然后再进行游戏开发. 虽然在我的JavaFX游戏开发库内已经实现了TMX地图的读取,但是 ...
- appstore收入分析及策略类游戏的战斗设计
分析appstore排行榜上中国区的数据,畅销榜上的游戏按类型基本如下: 策略类 〉模拟经营 〉RPG(自动战斗型)〉养成 〉动作 〉休闲 可以看出,移动平台游戏在收入方面与页游有着高度的一致性.成功 ...
- HTML5游戏开发(四)
HTML5游戏开发(四) 一.线段 (一)网格绘制 <!DOCTYPE html> <html><head><meta charset="UTF-8 ...
- 休闲类游戏开发中值得注意的问题
如今手机休闲类游戏已经成为人们日常生活中不可缺少的娱乐活动,面对成千上万中游戏的,怎样才能从中脱颖而出呢?要想开发一款成功而又吸引玩家的游戏不是一件简单地事情,所以休闲类游戏开发中有哪些问题是值得我们 ...
- Java黑皮书课后题第8章:***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中。谁先实现一行、一列或者一对角线上有4个相同颜色的棋子。
***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中.谁先实现一行.一列或者一对角线上有4个相同颜色的棋子 题目 题目描述与运行示例 破题 代码 题目 题目描述 ...
最新文章
- git服务器查看用户信息,git 查看当前git用户_新Git用户使用方法
- 赠书:Kotlin在Spring Boot中的应用
- java父线程子线程
- python ssh连接_python 建立SSH连接发送指令
- Re-installation failed due to different application signatures.
- 一位 CEO 在战略沟通会上的员工问答实录
- WindowsService服务程序开发
- 火星人谚语系列之五:答案将由我在下一分钟给出(心想事成)
- 运用集合把文字写入读出文件
- 斯维尔密码狗使用方法(附安装资源)
- 直播盒子接口怎么采集,以下方法。
- 常用的几款抓包工具_ 常见的4种抓包工具比较
- Librtmp的交叉编译详解
- rxbus 源码_关于RxBus实现方式的思考
- 斑马打印机设置成网络打印机步骤
- 中国式两性关系把外国人搞晕!
- DNW使用和常见问题
- Leetcode 1125:最小的必要团队
- 【Ice】【01】linux 安装ice
- 投资顾问需要什么条件
热门文章
- C语言和图形界面编程打造——浪漫的表白程序
- 朗读评价语言集锦_英语老师批改作业时的精彩评语集锦,超实用!
- 计算机电源稳压,一种用于计算机的电源稳压电路
- [渝粤教育] 西南科技大学 计算机工业控制 在线考试复习资料
- 【渝粤教育】电大中专建设工程法规 (3)作业 题库
- 【渝粤题库】陕西师范大学151210 成本会计作业 (专升本)
- 【渝粤题库】国家开放大学2021春1018国际公法题目
- LoRa无线通信模块在运动安全上的物联网运用
- linux 软件 名称 更新,linux软件版本管理命令update-alternatives使用详解
- 9 Unconstrained minimization