● 摘要
随着互联网发展进入注重用户交互的Web2.0时代,社交网络游戏发展迅猛,而随着云计算技术的逐渐成熟以及商业云计算产品的不断涌现,促进互联网公司、社交网络游戏开发团队、用户实现三赢的开放云计算以及社交网络游戏托管等商业模式也应运而生。这在丰富了人们的业余生活,促进了互联网经济的繁荣之外,从数据存储的角度而言,也带来了一些新的问题。一方面,社交网络游戏平台与日俱增的游戏以及用户数量使得传统的关系型数据库很难满足其对数据访问的性能需求和扩展性需要;另一方面,现有的NoSQL数据库系统虽然具有较好的可扩展性,但是却往往缺乏多租户支持。这些问题都给社交网络游戏平台的进一步发展带来了一定的困难。
针对这些问题和困难,本文从社交网络游戏中因用户的好友关系形成的社交网络的相关特性出发,设计和实现了一款负载感知的社交网络游戏数据托管系统。本文采用去中心化的可扩展体系架构、运用共享表结构的多租户模式以及列族存储的数据模型,在Cassandra的基础上实现了数据库系统的水平可扩展以及多租户支持特性;利用集中式的监控体系架构实现了对数据库系统的负载感知,并根据历史数据和特定事件的发生情况调整监测系统的监测频率以减少其对系统资源的消耗,从而降低实现负载感知功能对系统性能的影响;利用社交网络游戏平台上各用户之间因建立好友关系而形成的社交网络的特性对数据进行分片,并根据负载感知模块监测得到的系统的负载信息对数据分布进行调整从而实现数据库系统对访问量的负载均衡,以提高系统的资源利用率;采用同步复制技术进行系统的高可用设计。系统的功能性以及性能性测试表明,负载感知的社交网络游戏数据托管系统具有良好的水平扩展性,并可充分发挥社交网络游戏数据库负载的社交网络特性进行数据分片,同时根据负载感知系统采集的系统负载信息对数据分布进行调整,实现了数据库系统对访问量的负载均衡,提高了系统的资源利用率,而且,系统的高可用设计也能充分发挥作用,保证了系统的高可用,基本实现了设计目标。
相关内容
相关标签