主流流处理系统

Streaming 概念

Mike Metzger

Data engineer

流处理工具

  • 依据需求有多种工具可选
  • 便于架构师选择最合适的工具
  • 常见系统
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Streaming 概念

Celery

  • 分布式任务队列 / FIFO
  • 主要用作作业任务队列
  • 常用于异步任务
    • 发送重置密码邮件
    • 处理数字订单
    • 调整图片尺寸
  • 支持对大量消息的实时处理
  • 提供管理与伸缩能力(纵向与横向)

Celery 项目

Streaming 概念

Apache Kafka

  • 分布式事件流系统
  • 用于在生产者消费者间发送事件
    • 生产者主题上创建事件
    • 主题本质是特定格式的消息
    • 消费者接收新事件
  • 不同消费者可按需处理事件(日志、转换、转发等)
  • 按配置存储事件
  • 功能极其强大,但部署可能较棘手

Apache Kafka

Streaming 概念

Kafka 的应用

  • 最适用于在多系统间传递数据
    • 单一真实数据源
    • 变更数据捕获
    • 数据备份
    • 数据系统迁移
Streaming 概念

Spark Streaming

  • Apache Spark 的一部分
  • 面向流式数据处理
  • 基于 Spark,支持用 Scala、Python、SQL 等 处理数据
  • 适合处理海量数据与机器学习场景
  • 可较易地在批处理与流处理间切换
  • 不用于存储或记录事件,主要用于处理或改写数据

Apache Spark

Streaming 概念

练习时间!

Streaming 概念

Preparing Video For Download...