论文部分内容阅读
目前主流的流处理框架采用的都是分布式子任务独立计算的设计模式,分布式子任务在处理过程中彼此不发生信息交互,无法获取其他子任务的信息要素,分布式子任务间难以进行协同处理。同时,在一些流处理场景中存在具有时序性特征的数据,这类数据在进行后续的分析处理前必须完成时序同步的操作。一方面,为解决流处理框架在分布式子任务难以进行协同计算的问题,本文基于Apache Storm的流处理框架引入协同处理的模式,构建起分布式子任务间协同计算的能力。首先基于Storm实现跨分布式子任务间的实时消息传递,用于为协同计算算子分发、数据同步提供技术支撑,然后进行了分布式子任务协同计算的建模工作,并对模型中的各个模块进行了设计和实现,从而支持用户通过指定算子类型、配置算子内容实现跨子任务的协同计算。另一方面,针对多数据流的时序同步问题,本文设计了主从式结构的时序同步模块。该模块通过Akka并发处理框架进行实现,并基于Akka框架的Actor模型实现了模块中各类角色的消息交互,以及设计了模块中交互的消息类型和数据结构,确定了模块中主控节点和工作节点各自处理相应消息的流程。基于上述的研究工作,本文设计和实现了面向多数据流的实时处理的原型系统。通过相应的实验证明,该原型系统能实现多数据流的同步操作,并具备多数据流的协同处理能力。