Storm | 实时基础平台架构
2019-07-05 本文已影响0人
icebreakeros
实时基础平台架构
元数据管理器
元数据概念: 中介数据, 用于描述数据属性的数据
具体类型: 描述数据结构, 数据的具体位置, 数据间的依赖关系, 数据的处理过程, 数据的快照信息等
任务调度: 实时处理内部拓扑数据流调度(节点模块化), 不同组件之间的数据流调度, 不同子系统之间的任务调度
推荐方案: MySQL或者Zookeeper作为元数据的存储组件
多节点统一配置管理
问题
- 节点太多, 需要配置的配置文件太多, 太繁琐
- 配置需要修改时, 很难保证每个节点的配置统一, 维护成本高
- 无法针对性的对功能节点进行配置, 导致配置文件过于臃肿
- 配置文件太分散, 动态更新成本过高
解决方案
- 依赖于Storm主类本身的Config对象进行传递
- 使用MySQL进行配置文件的统一存储
- 以Puppet为核心的统一配置管理系统
系统监控
系统监控的重要指标
- 系统层: CPU, 内存, 磁盘利用率, I/O负载, 网络流量
- 服务层: Storm的两个基本服务(Nimbus和Supervisor), MQ, Zookeeper, MySQL以及其他相关组件服务
- 应用层: 具体的拓扑, 拓扑对应状态, 具体工作Worker的状态
系统监控的初步解决方案
- 系统层: 分布式监控组件Ganglia, Puppet+Zabbix结构
- 服务层: Puppet+服务探测脚本, Zookeeper+服务探测脚本
- 应用层: 使用ThriftAPI编写Thrift Client, 请求Nimbus内置的Thrift Server, 获取相关数据(Storm集群以及Topology数据)
数据总线
为何要引入数据总线
- 数据支持跨平台, 跨语言, 跨空间的处理(解耦)
- 数据安全隔离, 有效隔离不同组件, 系统之间的直接操作
- 冗余数据保护, 避免数据在某个组件, 系统中造成积压