论文部分内容阅读
近年来,随着云计算、物联网、社交媒体等新兴信息技术和应用模式的快速发展,人类社会不断地向大数据时代迈进。大数据时代下的流式数据呈现出实时性、突发性、无序性等特点,这对流式数据处理系统就有了更高更严格的要求。如今,现有的实时流数据处理系统通常面临着业务扩展困难、数据流管理困难的问题,本文旨在解决实时流数据处理中所面临的这两大问题,在保证数据处理的实时性和高效性的前提下,提出了一套新的基于Node-red的数据流管理和Redis内存计算的实时流数据处理模型。本文从总体架构上对该模型进行设计,重新设计了Node-red的数据输入节点、数据输出节点、数据处理节点以及Redis数据库访问节点,各个节点的开发使用Node.js异步编程语言,节点之间的通信是通过Redis的pub/sub机制以及Node.js的socket.io来完成。最后将这些节点重新安装部署到Node-red中,使其成为一个完整的实时流数据处理模型。在实时流数据处理过程中,经常会遇到最大值、最小值、累计求和、top(n)等数据指标的计算,而计算这些指标的基础就是去重统计,本文通过分析Redis有序集合的源码,结合Skip List的基本原理,提出了基于Redis有序集合的去重统计方法,并通过新设计的Redis数据库访问节点实现该方法在实时流数据处理模型中的应用。实时流数据处理模型设计完成之后,一个重要任务就是对模型进行应用验证,因此本文设计并实现了一个实时的网站访问监控系统,并利用该模型对数据进行实时处理,最终将分析结果展示在前端可视化界面上。该系统主要包括三个模块,实时数据采集模块、实时数据分析模块以及数据可视化模块,其中,实时数据分析模块是利用本文所设计的实时流数据处理模型来实现的,数据可视化模块是利用Node.js的express框架实现的一个web应用,用户只需在浏览器上登录就可以访问监控页面,同时利用highcharts将数据可视化模块中的图表组件化,以此来适应因业务的不断扩展而带来的数据多样化。本文最后对设计的系统进行了功能测试和性能分析,测试结果均已达到要求。综上所述,本文完成了从模型的设计到模型的应用的全过程,同时其可行性和有效性在实际的生产线上已经得到了验证。