所在位置:
大数据承载

一、为什么关注大数据承载

      首先介绍一下背景,为什么我们要关注大数据承载?其实了解目前大型连锁游乐场旅游景区业务发展方向的话,就会知道除了游乐和票务两大业务之外,还有多种经营业态和多个联营合作商,每个地区的游乐园或景区的业务形态差异也较大,变化也快,原来那种Batch形式的数据处理方式已经很难满足各个业务数据获取和分析的需要,集团总部公司需要更为实时地分析和处理数据。

       其实在探索如何提升系统大数据承载能力之前,我们自己也做了很多的尝试,其中也存在很多的问题:

首先是技术选型五花八门,消息队列有用ActiveMQ的,有用RabbitMQ的,也有用Kafka的,分析平台有用Storm的,有用Spark-streaming的,也有自己写程序处理的;目前行业中其他家的管理系统研发主要精力还是放在业务需求的实现上,所以这些实时数据应用的稳定性往往难以保证。

其次就是缺少必要的配套流程,比如说像报警、监控这些东西。

      最后就是数据和信息的共享不顺畅,如果一个游客跨地域到其他城市的游乐园或景区进行消费的时候,如果需要调用到会员账户里的实时数据,两个地区的管理系统分析处理的系统不同就会很难弄。所以在这样前提下,就需要打造一个统一的而且能承载大量数据的平台系统。

 

二、需要怎样的大数据承载能力

这需要满足4个需求

      首先是稳定性,稳定性是任何平台和系统的生命线;

      其次是完整的配套设施,包括测试环境,上线、监控和报警;

      再次是方便信息共享,信息共享有两个层面的含义,1、是数据的共享;2、是应用场景也可以共享;

      最后服务响应的及时性,用户在开发、测试、上线及维护整个过程都会遇到各种各样的问题,都需要得到及时的帮助和支持。

 

三、如何实现?

       在明确了这些需求之后我们就开始构建这个平台,当然第一步面临的肯定是一个技术选型的问题。最终我们选择了面向服务的RESTful服务架构,从缓存技术、数据库设计、代码算法等多个角度全面优化,可便捷的支持信息平台集成,高效实现大数据资源承载和数据共享互助。

      总体来说,相对于目前市场上其他采用传统系统架构的管理系统,我司采用RESTful软件架构风格的优点主要如下:

      1)客户-服务器(Client-Server)客户端服务器分离

      优点:提供用户界面的便携性(操作简单),通过简化服务器提高可伸缩性(高性能,低成本),允许组建分别优化(可以让服务端和客户端分别进行改进和优化)。

      2)无状态(Stateless),从客户端的每个请求要包含服务器所需要的所有信息

      优点:提高可见性(可以单独考虑每个请求,适合云计算),提高了可靠性(更容易从局部故障中修复),提高可拓展性(降低了服务器资源使用)。

      3)缓存(Cachable),服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求。

      优点:减少交互次数,减少交互的平均延迟。

      4)分层系统(Layered System),系统组件不需要知道与他交流组件之外的事情,封装服务,引入中间层。

      优点:限制了系统的复杂性,提高可拓展性。

      5)统一接口(Uniform Interface),客户和服务器之间通信的方法必须是统一化的

      优点:提高交互的可见性,鼓励单独改善组件。

      6)支持按需代码(Code-On-Demand可选)

      优点:服务器可以提供一些代码或者脚本(Ross: Javascript, flash, etc)并在客户的运行环境中执行,提高可拓展性。(Ross:比如客户可以在客户端下载脚本生成密码访问服务器)。