MassData 设计

集群化

  • 集群成员:提供节点的容错能力
  • 负载均衡:通过路由算法将任务负载分配到集群中的多个节点上并行执行

子系统

总体上看,MassData 平台分四大部分,有2类程序(每个程序可运行多个节点)。2类程序分别为:Broker节点和控制台(console)。

  • Broker:其中一个做为协调者,实现管理和调度功能。调度Job,从Job中提取Task并分配到引擎执行。接收Task,调用组件执行。
    • leader: 集群中的一个单例节点,MassData 将在集群中自动选择一个节点做为 Leader
    • engine: 执行实际的业务任务
  • Console:基于Web的图形化监查、管理控制程序。可监控 MassData 运行状态,控制系统功能,编辑、配置、部署业务编排文件。
    • console: mass-data数据平台管理、监控程序
    • orchestration: 业务编排应用

MassData 在生产运行时只需要启动 broker 集群即可,console 作为管理控制台可选运行。

数据通信

消息、通信 MassData 基于 Akka Cluster 完善而强大的集群支持,不需要再使用一个单独的 数据总线 系统来做服务发现、注册, 进程间消息通信等功能。

监控上报 引擎的各种运行状态可通过 Akka 的分布式发布、订阅功能进行实时上报,console 可选消费相关主题分组的消息。

组件与集群通信,组件与集群单通信主要有两种方式:

  1. 使用Akka Cluster Client 连接集群:当引擎启动外部组件时,组件并未在集群环境内运行。这时,当组件需要与 MassData 通信时, 如组件应直接将消息上报给当前运行节点的引擎。
  2. 以规定格式写入日志文件,引擎将解析日志文件并上报。

仿真、开发、调试

在实际工作中我们需要在开发或测试环境模拟线上数据及运行状态,提前编排好业务规则,同时在上线生产环境前预跑流程并提前查找到 问题及错误。基于本身 MassData 的灵活性和部署简易性,我们可在任务环境(Linux服务器)下方便、快速的搭建出一套于生产环境类似的仿 真环境。

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.