首页 > 代码库 > 架构之美阅读笔记02

架构之美阅读笔记02

第三章伸缩性构架设计

本章的重点是怎样确保系统在伸缩时的弹性。因为访问量的不稳定,所以伸缩性显得尤为重要。而在虚拟世界中伸缩性的问题进一步复杂化。伸缩性设计的背景就是游戏的开发和发行,玩家的交互,玩家的对电脑的要求。并发的芯片比更高时钟速度的芯片更容易开发。游戏中玩家的交互只和少部分人发生交互。所以这也适合并发。

我们的首要目标就是把一台单机运行一个单线程部署到多线程和多台计算机上应该由基础设施来考虑。游戏世界始于一个很胖的客户端(具有强大功能的pc),所有数据尽量放在客户端。服务器尽量保持简单。服务器的数据大半会被改写。在企业环境中有一点延迟是可以接受的,但是在游戏环境是不能接受的。所以有两种方法应对延迟,一种是基于地理位置实现的,把虚拟世界的一个岛或房间划分为一个区域放在服务器上。第二中是分区,一个分区就是一个副本,运行在它自己的服务器上,但是这种方法不允许不同分区的玩家交互。因此文明的另一个主要目标就是随时伸缩,同时不要求游戏逻辑受到伸缩的影响。

Darkstar由一组独立的服务构成,这些服务可以在游戏或虚拟世界的服务器端的地址空间内获得。总之开始了分而治之的过程。所有的大型计算机系统的基本方法都是分而治之。它的宏观结构,每个客户端连接到它相对的的服务器(栈),所有服务器由一个元组统一调配。在栈层面的服务中,最基本的服务就是“数据服务”,第二个是“任务服务”。通信服务的第一个服务是“会话服务”第二种通信服务是“通道服务”。要实现负载均衡的能力关键是对于我们要求的编程模型和必须使用的基本栈服务,响应客户端事件或游戏事件的任务可以从任何一台运行栈和游戏副本的机器移动到另一台同样的机器上。

第四章记忆留存

 

架构之美阅读笔记02