讲稿
如果不出意外的话,我现在正在准备在 2007软件开发2.0大会 上的一个演讲:大世界网络游戏服务器的构架 。马上就要上讲台了。
其实主要是介绍下我们这两年正在开发的网络游戏引擎服务器部分的设计。这里有 PPT 可以下载 。
12 月 4 日,终于回来了。
对 PPT 中几个地方做点简单的解释,在那天似乎也讲到了这些:
数据文本化:我们甚至连 3d 模型数据都文本化了。 在实际工作中也真的带来了好处。为了弥补性能损失, 另外做了命令行工具转换。这就跟我们用编译型语言一样, 大家维护的是文本的源代码, 用的是 二进制程序。我们这些数据在 svn 上保留的是文本, 用之前要通过 makefile 和相应工具转换。性能无关的一些东西就直接用文本了。
太多单点导致故障率上升:首先, 我们的需求决定了允许单点故障发生。其次, 一个单点拆分成两个,并不意味着故障发生率上升。因为, 若把两件事一起做, 任意一件事出了问题, 同样会导致故障。这跟把任务是否拆到多个进程是无关的。如果我们强制配置多个进程在同一物理机器, 和硬件与网络也无关。反而因为单个任务变简单了, 故障率会下降, 承载力上升。如果日后某个单点需要做双份相互备份, 因为任务相对简单, 系统升级也更容易做。
采用单线程多进程:本质上在不考虑效率因素时, 多进程完全可以取代多线程模型, 且可以获得更大的健壮性。实际上多线程模型会把进程间数据传递的开销转嫁到锁开销上。这两种开销的代价比在未来是很可能发生变化的。我的整个设计是提供更长的流水线来在保证一定的反应时间的基础上加大整个系统的承载量。从设计上避免大量的进程间相互交互, 这样让数据在流水线上通常流动, 从而避免逻辑阻塞在单进程中。
二进制跨平台:我们不跨不同的 cpu 指令集。 这只需要定义自己的代码模块二进制格式即可做到。
Comments
Posted by: Cloud | (34) December 15, 2007 12:01 AM
Posted by: 简单 | (33) December 14, 2007 05:19 PM
Posted by: Anonymous | (32) December 13, 2007 10:10 PM
Posted by: ll | (31) December 10, 2007 10:34 PM
Posted by: JackYang | (30) December 7, 2007 08:25 PM
Posted by: ... | (29) December 6, 2007 02:53 AM
Posted by: ogmw | (28) December 5, 2007 03:40 PM
Posted by: Anonymous | (27) December 5, 2007 11:45 AM
Posted by: Anonymous | (26) December 5, 2007 10:26 AM
Posted by: alioxp | (25) December 5, 2007 09:46 AM
Posted by: asiantao | (24) December 4, 2007 10:17 PM
Posted by: 大脚 | (23) December 4, 2007 02:45 PM
Posted by: bennie | (22) December 4, 2007 11:43 AM
Posted by: loverwei | (21) December 3, 2007 09:59 PM
Posted by: Anonymous | (20) December 3, 2007 09:54 PM
Posted by: MADLAX | (19) December 3, 2007 09:06 PM
Posted by: cloud | (18) December 3, 2007 07:05 PM
Posted by: cloud | (17) December 3, 2007 07:02 PM
Posted by: 我是谁 | (16) December 3, 2007 02:54 PM
Posted by: 我是谁 | (15) December 3, 2007 02:52 PM
Posted by: goldou | (14) December 3, 2007 12:29 PM
Posted by: smart324 | (13) December 3, 2007 11:40 AM
Posted by: 天堂的隔壁 | (12) December 3, 2007 09:51 AM
Posted by: alioxp | (11) December 3, 2007 09:32 AM
Posted by: k120 | (10) December 2, 2007 01:14 PM
Posted by: rockcarry | (9) December 2, 2007 10:07 AM
Posted by: duguguiyu | (8) December 1, 2007 05:18 PM
Posted by: 宾格 | (7) December 1, 2007 05:14 PM
Posted by: asiantao | (6) December 1, 2007 02:11 PM
Posted by: Atry | (5) December 1, 2007 01:57 PM
Posted by: 夜夜叶想 | (4) December 1, 2007 01:40 PM
Posted by: seek | (3) December 1, 2007 01:09 PM
Posted by: hchc | (2) December 1, 2007 09:29 AM
Posted by: rockcarry | (1) December 1, 2007 09:21 AM