摘要:
随着移动智能终端设备性能日渐提高和大量普及,以及移动网络通信技术逐渐成熟,移动互联网近年进入发展热潮,移动网络游戏成为人们重要的日常娱乐.由于游戏产品期望在较大的用户量级的情况下能够保证游戏服务的质量,因此实现高负载,高性能,高稳定等要素成为服务器端开发过程的重要诉求.针对上述情况,对移动网络游戏服务器端进行设计和实现,重点对与特定游戏的逻辑关联较弱即易于复用的部分进行介绍. 对于移动网络游戏服务器端的设计,基于高并发,可伸缩,高可用的特点,需要采用分布式集群的整体架构.在设计过程中,通过利用分层设计的原则进行指导,从而对功能模块进行了划分.系统主要分为接入层,路由转发层,逻辑层和存储层.基于分布式系统的特点,对整个系统提出了负载均衡,能够容灾的设计;对于可扩展,主要通过分层和完备的层间通信机制保证;高并发则基于事件驱动和Linux下的I/O复用技术;出于高效性的考虑,通信协议尽可能简短,使用高速的序列化技术;除此之外,协议和处理流程上还要能够保证一定的安全性.考虑到移动互联网的特点,需要在网络交互中灵活运用TCP和UDP,并充分利用Linux共享内存的数据与进程无关的特性;至于逻辑处理部分,在充分复用消息处理通用框架,利用状态机简化复杂的处理逻辑和提供逻辑层通用功能组件基础上实现游戏所需各种逻辑;对于系统中所有服务,使用ZooKeeper进行服务监测,进一步保证分布式环境下整个系统的高可用. 通过严格的压力测试,整个系统表现出较好的实际效果,达到了预期的要求,不会存在单点故障,能够承受大量的系统负载.在以后游戏服务器端的开发工作中可以复用该系统,在有可靠性保证的历史前提下能够加快开发效率.
展开