阅读笔记02
继续阅读了关于架构的企业级应用架构。首先应确保系统的伸缩时的伸缩性。首先什么是伸缩性就成为我这次阅读的关键问题。伸缩性是一种对软件系统计算处理能力的设计指标,它代表的是一种弹性,在系统扩展成长过程中,软件能够保证旺盛的生命力,通过很少的改动甚至只是硬件设备的添置,就能实现整个系统处理能力的线性增长,实现高吞吐量和低延迟高性能。
我们更熟悉的是Web服务器,用户读取的常常是静态的内容,而且之间没有交互,但MMO则与此不同。用户之间需要与外部和内部的交互,他们不仅需要与所处的环境进行交互,还需要彼此之间的交互。这些交互行为使得这类系统基础设施的伸缩性问题变得更复杂,这是因为这些玩家与系统的交互几乎是独立的,而且不会让环境的状态改变太多。
也许所有人关于架构及其实现的第一个问题就是它的性能,虽然未经深思熟虑就对架构进行优化是诸多罪恶之源,他们也有可能会设计出一个架构,但它的实现根本不可能达到好的性能。由于游戏行业的特点,确定服务器基础设施的性能是很难的。其难度源自一个简单的事实:没有针对大规模MMO或虚拟世界的性能测试标准或共同接受的例子。只有少数的通用基础设施可以作为可复用的构建块,这些组件一般是事后从特定的游戏或虚拟世界中提取出来的,提供给其他构建类似游戏的人使用。
作为一个架构,Darkstar展示了一些创新的方法,这使它变得很有趣。它试图构造一个游戏或虚拟世界的基础设施,使其具有企业级软件一样的可靠性,同时又满足游戏行业对延迟、通信和伸缩性的要求。它是目前为数不多的这类尝试之一。通过利用更多机器和更多线程来实现效率,我们希望能够抵消因使用持久存储机制而导致的延迟增加。最后,游戏和虚拟世界环境中极为不同的情况,即客户端的处理很多而服务端的处理很少,与我们常见的高并发、分布式系统环境形成了鲜明的对比。