主流流处理系统
Streaming 概念
Mike Metzger
Data engineer
流处理工具
- 依据需求有多种工具可选
- 便于架构师选择最合适的工具
- 常见系统:
- Celery
- Kafka
- Spark Streaming
Celery
- 分布式任务队列 / FIFO
- 主要用作作业或任务队列
- 常用于异步任务
- 支持对大量消息的实时处理
- 提供管理与伸缩能力(纵向与横向)
Apache Kafka
- 分布式事件流系统
- 用于在生产者与消费者间发送事件
- 生产者在主题上创建事件
- 主题本质是特定格式的消息
- 消费者接收新事件
- 不同消费者可按需处理事件(日志、转换、转发等)
- 按配置存储事件
- 功能极其强大,但部署可能较棘手

Kafka 的应用
- 最适用于在多系统间传递数据
- 单一真实数据源
- 变更数据捕获
- 数据备份
- 数据系统迁移
Spark Streaming
- Apache Spark 的一部分
- 面向流式数据处理
- 基于 Spark,支持用 Scala、Python、SQL 等 处理数据
- 适合处理海量数据与机器学习场景
- 可较易地在批处理与流处理间切换
- 不用于存储或记录事件,主要用于处理或改写数据
Preparing Video For Download...