论文部分内容阅读
随着网络技术的迅速发展和硬件性能的不断提高,网络游戏已经成为电子游戏产业中增长最块的游戏类型,构成了IT行业中新兴的利润增长点。巨大的市场需求吸引了国家和社会的极大关注,越来越多的专业游戏开发商介入其中。由于历史的原因,我国的游戏产业起步较晚,尚处于快速发展阶段。目前,随着网络游戏玩家的日益增多,网络游戏服务器端承受着严峻的性能考验和负载压力。为了提供良好的服务品质,网络游戏服务器端的设计显得尤其重要。进行游戏服务器端网络通信架构以及关键技术的研究,对于游戏产业的发展和现行游戏的开发都有积极的意义。网络游戏服务器同时为大量客户服务,要求具有很高的稳定性,同时能够及时响应客户请求。性能的提高依赖于服务器数据处理的每一个环节,而通信部分位于体系底层,有着基础和支柱的作用。系统资源的分配方式、Socket的管理、I/O模式的选择、并发服务以及负载均衡策略等都直接影响到通信的效率。本文将首先分析和讨论服务器通信相关技术。接着在阐述服务器系统层次框架的基础之上,着重分析服务器中通信系统的功能需求和体系结构设计。同时对系统赖于运行的驱动机制——事件订阅和消息驱动进行了深入地讨论。一个良好的设计应该尽量减少模块间的耦合度,结合系统特性运用设计模式力求封装变化,以使整体架构具有较好的可扩展性和可维护性。文中采用了面向对象方法对服务器网络体系中的关键模块进行了详细的分析和设计。讨论网络I/O的管理,阐述如何处理大量客户的连接以及数据传输等;设计连接会话,分析会话状态维护以及空闲会话、非法会话的检测;研究通信协议的分层机制,设计数据在各层的格式定义,实现协议数据与具体业务的转换等;分析系统资源预分配机制中线程池的具体实现,阐述分配者/工作者策略的设计思路与技术优势。文中所研究的通信体系架构以及关键技术的设计实践分析,对了解和解决服务器设计中所遇到的基本问题有很好的工程参考价值。