第pan style="font-family:宋体">章 游戏服务器架构总体设计 在设计开发软件系统的时候,我们首先想到的就是系统架构设计。游戏服务器也是一个庞大的软件系统,需要花费适当的时行架构设计和开发,这样做的目的是实现系统的易维护性、稳定性、可扩展性及实用性。本章涉及的知识点如下。 ·了解游戏服务器架构设计的意义。 ·了解基本的游戏服务器的架构分类。 · 了解基本架构每个模块的能。 pan style="font-family:宋体">.pan style="font-family:宋体">游戏服务器架构设计的意义 架构即规则,架构的设计其实也是规则的设计。俗话说: “无规矩不成方圆”。游戏服务器架构设计就是为整个游戏服务器开发制定规则,让开发团队在这个规则下,快速、正确地完成任务。因此,我们需要知道架构设计的意义,明其理,方能行其事。 pan style="font-family:宋体">.pan style="font-family:宋体">.1 良好的架构设计有助于团队协作开发 众所周知,在一个游戏服务器开发团队中,不同成员的专业能力、思考能力、学、沟通能力各不相同。那么团队成员如何在短时间内提升能力,如何尽快融入项目开发呢?相互协作是最重要的一种方式。 游戏服务器架构设计的目的就是统一规则、划分模块、定义职责,使团队中的人能各司其职、有条不紊地完成工作,使团队协作更加紧密、协调。游戏服务器架构是团队协作的基础,譬如高楼之基。如果没有这个基础,人员再多,也是无处下手,无所适从。即使勉强堆砌,后期亦可能推倒重建,就像一个没有规划的城市一样,随意搭建的结果一定是混乱不堪。因此失败的案例数不胜数。其根本原因就是没有设计好前期架构,导致后面越开发代码越乱,整个项目变得臃肿,而在时间上又不允许重建架构。 一个良好的游戏服务器架构设计,应该有其明确的脉络,反映出一种设计思想。架构设含如网络如何通信,数据如何缓存、如何持久化到数据库,如何添加新的能而不影能,以及如何保证线程等问题。架构设计让整个系统有一个明确的层次、统一的风格、清晰的接口定义和调用规则,而没有重复的代码。架构设计的目的就是制定一些规则。让所有团队成员都遵守这些规则。在这个基础上团队成员就可以迅速地实现并行开发能,并能的正确性,减少返工现象,缩短项目开发周期。 pan style="font-family:宋体">.pan style="font-family:宋体">.2 良好的架构设计有助于避免bug的产生 架构设计也是经验的总结。一般来说,一的商业化游戏服务器项目,它的架构都是由从事游戏服务器开发多年、经验丰富的人设计开发的。通过经验的总结,把容易出错的公共部分使用架构来规避,并且通过严密的测试,最终实现消除隐患。 比如涉及网络通信的问题,有的开发人员在设计的时候,只考虑接收客户端的消息,并且实现正常返回消息即可,而没有考虑到多线程处理消息,导致数据不一致,出现一些莫名其妙的问题。是以Web服务作为服务器的时候,因为Web服务底层接收的消息会被放到一个固定大小的线程池中,所以每个HTTP请求在controllel’中处理的时候,都可能在不同的线程里面。如果出现并发请求,就有可能导致数据错误。 在架构设计中可以提交预知并解决这个问题。比如给同一个用户请求的消息加锁或者把请求消息分配到固定的消息队列中,由另外的线程按顺序取出消息并处理。这样在处理业务的时候,就不需要担心请求并发问题了,防止开发业务时考虑不周而产生bug。 pan style="font-family:宋体">.pan style="font-family:宋体">.3 良好的架构设计有助于制定合理的项目开发周期计划 在项目开发的过程中,时间是的。游戏产品开发是一个长期的过程,但是也有严格的周期限制。在整个开发过程能开发和测很大一部分时间,而架构设计是能快速开发的基础。 架构设计必须从项目的全局来考虑和衡量。架构设计的完成不是一蹴而就的,在项目开发过程中,由于新需求的出现,需要不断地修改或扩展架构,慢慢使其完善。良好的架构设计,需要预知项目能是公共的、是可以在架构中实现的,这样可以减少重复代码,提前为不同的业务开发提供服务…… |