====== 实时流计算系统架构 ====== 5个部分:数据采集、数据传输、数据处理、数据存储和数据展示。 ===== 1 数据采集 ===== 通常而言,数据组织的结构越简单越好,平坦的数据结构比嵌套式数据结构更好,嵌套浅的数据结构比嵌套深的数据结构更好。 ===== 2 数据传输 ===== 选择消息中间件时,考虑以下因素: - 吞吐量 - 延迟 - 高可用 - 持久化 - 水平扩展 ===== 3 数据处理 ===== 通常使用 DAG 来描述流计算过程。 ===== 4 数据存储 ===== 存储方案选择: ^ 目的 ^ 选型 ^ 原因 ^ | 实时查询 | NoSQL数据库 | 更适合大数据量下的实时查询,能获得更高的吞吐能力 | | 数据备份、离线分析 | 分布式文件系统:HDFS 或 S3 | 。| | UI 呈现 | 搜索引擎类:ES | 更好应对未来UI需求变化、各种查询条件调整 | 很多时候必须将相同内容的数据根据不同的需求,同时存入多种不同功能的存储方案中。 ===== 5 数据展示 ===== 形式: * REST API * Web UI 数据可视化是数据展示的核心所在。