数据库表设计:
因为要把这么多访问量分担到不同的服务器里,原先的数据库表设计肯定不会合适。初步的想法是根据游戏的逻辑模块,将不同模块的数据库表拆分到各个服务器里,如果按照上面的服务器预估得到的结论是4~6组服务器,实际上这个方案还是可行的。但如果是20组服务器的话,除非是一台服务器一张数据库表,但这的设计会造成数据表太分散,在处理事务的时候,会跨多个数据库
策略类webgame一般的主要模块为:建筑物和资源、军事、英雄、物品、帮会、交易、地图。根据这些模块的应用场景,可以将数据库表分为2种类型,一种是属于玩家的数据,另外一种是公共数据。
1. 属于玩家的数据是指玩家个人说拥有的基地、资源、军事单位、物品等数据,它们都是围绕着玩家而产生的。
2.公共数据则是指由多位玩家共同组合而产生的数据,例如:账户信息、帮会、地图等。
这里划分两种数据的目的是在于他们的数据库表的划分。对于公共数据,则采用单一服务器,单一数据库表处理的方式来处理。例如帮会模块和地图模块就准备分别用3台服务器来存储各自对应的数据库表。而对于玩家的数据,则根据用户ID采用一定的划分方式,将玩家数据打散到各个服务器里(http://blog.zhaojie.me/2010/03/sharding-by-id-characteristic.html)。
(数据表的结构划分)
用户表和其单表的设计思路:
这里所说的单表是指在逻辑上部队数据库表做拆分,程序在访问时只访问一个数据库。当然这只是逻辑上的单一,根据实际上的访问压力,可以将数据库文件作水平切割分布在不同的文件分区和服务器里。这部分的数据库表设计继续沿用之前的设计方案就可以了。
对于用户信息,帮会信息等数据,实际上插入和更新的频率不会太高,更多的是在查询上,因此这部分的设计重点应该是在缓存上。从以前的资料里得知Memcache服务器每秒可以响应4w次的读请求,用一台Memcache就能处理好用户和帮会信息的缓存处理。
分享到:
相关推荐
- **数据库设计**:合理的数据库设计对于Webgame来说至关重要,需要考虑到性能优化、数据安全等因素。 - **前端技术**: - **AJAX**:异步JavaScript和XML的缩写,可以实现局部刷新页面,提升用户体验。 - **...
- **地图结构设计**:地图是Webgame中非常核心的组成部分。一般情况下,会为每个地图设定一个唯一的ID(Map_ID),并通过坐标系统(X, Y)来表示地图上的各个位置。 - **城市模型**:除了地图之外,城市也是游戏中不...
项目文件"WebGame-master"很可能包含了以下结构: - `server.js`: 主服务器文件,包含Node.js应用的启动代码,可能还包括数据库连接和路由配置。 - `models/`: 存放与MongoDB交互的模型文件,定义了数据的结构和操作...
通常,这样的命名可能是游戏资源、模块或者数据库表的简写,比如可能包含游戏日志记录、用户数据、游戏地图、游戏逻辑代码等。 综上,"侠域网页游戏WebGame源代码"涵盖了PHP编程、Web开发基础、数据库管理和游戏...
在"Webgame 在线棒球赛"中,ASP可能被用来处理用户输入、管理游戏逻辑和数据库操作等任务,确保游戏的顺畅运行。 "网页游戏"(Webgame)是指在网页浏览器中运行的游戏,通常依赖于JavaScript、HTML5、CSS3等Web技术...
1. **Python基础**:Python的基础语法是理解任何Python项目的基础,包括变量、数据类型、控制结构(如if-else,for,while循环)、函数、类和对象等。了解这些基础知识能帮助我们阅读和理解代码逻辑。 2. **Web框架...
【标题】"Webgame ASP JavaScript在线游戏源代码"揭示了这是一个使用ASP(Active Server Pages)技术和JavaScript编程语言构建的在线游戏平台的源码资源。ASP是微软开发的一种服务器端脚本环境,常用于动态网页的...
此外,描述还暗示源码可供学习,这为初学者或有经验的开发者提供了查看代码结构、逻辑和设计模式的平台,有助于提升他们的编程技能。 【标签】中包含了"asp.netwebgame"和"C#",这表明虽然游戏本身是用PHP编写的,...
《最终幻想webgame(access)》是一款基于网页的在线游戏,其源码可供学习和研究。这款游戏使用了big5编码,这是一种繁体中文字符编码,主要用于处理台湾、香港等地的中文文本。通过分析这款网页游戏的源码,我们...
通过合理设计数据库表结构,使用索引,优化SQL查询,以及采用缓存策略(如Redis或Memcached),可以显著提升数据库性能。 3. **负载均衡**:随着玩家数量的增加,单一服务器可能会不堪重负。通过引入负载均衡技术,...
2. **数据库设计**:通常包括SQL脚本,用于创建玩家表、游戏世界表、物品表等,以及相关的数据模型类,负责与数据库进行交互。 3. **游戏逻辑**:包括用户注册、登录系统、游戏进程控制、角色移动、战斗逻辑等,...
通过对父类Message、通信连接类Connection、VO身份识别配置类VOIdentifyMap以及Socket命令类SocketCommands的详细介绍,旨在为Webgame开发者提供一种高效、可靠的通信VO设计思路。此外,还提出了具体的使用流程和...
以一个简单的webgame为例,我们可以进一步探讨其设计思路: #### 1. **数据库设计** - **玩家表**:存储玩家基本信息。 - **地图表**:存储游戏世界中的地图信息。 - **城市表**:存储游戏中城市的详细信息。 - **...
这个【webgame-【源代码包】】显然包含了多个关于Webgame开发的源代码和资源,对于想要学习和理解AJAX(异步JavaScript和XML)在Webgame中的应用非常有价值。 首先,AJAX是一种在不刷新整个网页的情况下,能够更新...
**标题与描述**:“WebGame大型游戏架构书”这一标题简洁明了地概括了文档的主题,即介绍一个基于网络的大规模游戏架构的设计思路和技术要点。该文档描述部分重复了标题内容,没有提供额外的信息,但从整体来看,...
《Webgame部落争霸》是一款基于PHP开发的在线游戏,它展现了Webgame的魅力,结合了策略、竞技等元素,为玩家提供了丰富的游戏体验。本资源包含了游戏的主要源代码,位于压缩包内的"htdocs"目录,这通常代表了Web...
3. **数据库操作**:Travian的数据库设计是源码的关键部分,它存储了玩家信息、游戏状态等关键数据。源码中的SQL查询和ORM(对象关系映射)层展示了如何高效地读写数据库,以支持大量并发玩家的游戏环境。 4. **...
### 网页游戏开发入门教程(webgame design) #### 一、基础知识点概述 本教程旨在为初学者提供一个简单易懂的网页游戏开发入门指南,并为有经验的开发者提供一些新的启发。通过本教程,您将了解网页游戏开发的...