提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

Neha Narkhede: 借助 Apache Kafka 实现大规模流处理

2016 年 6 月 22 日

QCon 纽约 2016 大会上,Neha Narkhede 在演讲“借助Apache Kafka 实现大规模流处理”中介绍了Kafka Streams,这是Kafka 用于处理流式数据的新特性。据Narkhede 介绍,因为“无界(unbounded)”数据集随处可见,所以流处理越来越流行。那不再是一个像机器学习那样的小众问题。

Narkhede 首先介绍了数据操作的基本编程范式:

  • 请求 / 响应周期
  • 批处理
  • 流处理

然后,Narkhede 提供了一个来自零售领域的流处理实例:销售和发货从根本上说是无界数据集,流处理可以有效地处理这样的数据集。销售和发货是一个事件流(“发生了什么”)和基于这些事件重新计算价格(“做些什么”)的函数是流处理器。

在考虑流处理时,Narkhede 提到了开发人员如今可以选择的两个最流行的选项。第一,开发人员可以自己实现,对于简单的场景而言,这可能还说得过去,但当加入像订购、扩展性、容错性或处理历史数据这样的特性时,情况会变得非常复杂。第二,开发人员可以选择像 Spark 或 Samza 这样的解决方案,它们都是重量级的,而且一般说来是为 map/reduce 而设计的。但在 Narkhede 看来,流处理更像基于事件的微服务,而不是 map/reduce,而这就是 Kafka Streams 的设计初衷。

Kafka Streams 是一个轻量级的库,可以嵌入应用程序,而且对打包或部署没有施加任何限制。Narkhede 接下来概括地介绍了如何实现流处理系统的重要功能。

  • 因为事件日志分区,所以扩展性是自动支持的。这样,基于 Kafka Streams 的应用程序就可以形成集群。消费者库也会在并行数据处理方面提供帮助。
  • 容错性也是开箱即用的。Kafka Streams 集群中的节点不分主次,都是同等的节点。本地状态差不多就是一个缓存,如果一个节点宕了,则数据处理只要简单地转移到另一个节点就可以了。
  • 有状态处理也是支持的,根据需要通过连接或窗口计算实现。在这种情况下,必要的数据会被推送到处理器,以避免远程访问。
  • 支持使用修改后的业务逻辑对数据进行再处理,允许新消费者从偏移量 0(从头)开始事件处理。

接下来,Narkhede 介绍了 Kafka Streams 的双重性,作为实现给定特性的基本原则:从根本上讲,就是表(“状态”)和流(“状态如何变化”)的概念相结合。因此,基于 Kafka Streams 的应用程序可以同时具备响应性和状态。另外,同时具备这两个概念还会简化架构。

Neha Narkhede 在结尾时简单地介绍了一下 Kafka Connect,这是一个副项目,可以连接各种数据库、Hadoop 或 Elasticsearch 等系统,向 Kafka 输入数据或从 Kafka 获取数据。

请注意,大部分 QCon 讲稿都将在会后数周在 InfoQ 上提供,而幻灯片可以从大会的官方网站上下载。

查看英文原文 Neha Narkhede: Large-Scale Stream Processing with Apache Kafka

2016 年 6 月 22 日 19:001636
用户头像

发布了 1008 篇内容, 共 310.5 次阅读, 收获喜欢 278 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第二周课后作业

Cloud.

极客大学架构师训练营

架构师训练营-- 第二周作业

stardust20

架构师面试题(1)

满山李子

「架构师训练营」第2周作业

Amy

极客大学架构师训练营 作业

学习总结

Mr.Monkey

Go: 内存管理和分配

陈思敏捷

go golang 内存管理

架构师训练营 - 第二周 - 学习总结

stardust20

【架构师训练营-周总结-2】

小动物

总结 极客大学架构师训练营

直播 | 即将发版的 Flink 1.11 有哪些重大变更?

Apache Flink

大数据 flink 流计算 大数据处理

架构师训练营第 0 期第 2 周作业

upupup

极客大学架构师训练营

数据科学的门槛将提高,架构设计UML,John 易筋 ARTS打卡Week 04

John(易筋)

架构设计 ARTS 打卡计划 ARTS活动 arts

对标腾讯T3-2:高并发+微服务+消息中间件+Redis+MySQL+Nginx

周老师

程序员 面试 cpu 多线程 高并发

周末直播|Flink、Hologres、AI等热门话题全都安排!

Apache Flink

大数据 flink 流计算 大数据处理

【架构师训练营 - 作业 -2】依赖倒置

小动物

极客大学架构师训练营 作业

架构师之路-UML 入门

闻人

学习 架构设计 极客大学架构师训练营 架构总结

如何优雅的理解HBase和BigTable

Rayjun

Java HBase

MongoDB与微服务

Thomas

微服务 mongo

ARTS打卡 第1周

Scotty

ARTS 打卡计划

从车辆工程转行程序员两年,我是这么走过来的

WB

转行程序员 汽车电子

软件设计原则作业

Mr.Monkey

大数据的下一站是什么?服务/分析一体化(HSAP)

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

ARTS|Week 03 (2020第24周)

MiracleWong

数据结构 算法 ARTS 打卡计划

架构师训练营第 0 期第 2 周学习总结

upupup

极客大学架构师训练营

架构师训练营第二章作业

张明森

架构师训练营-第一周作业1-食堂就餐卡系统设计

清风徐徐

极客大学架构师训练营 UML

ARTS 打卡(20.06.08-20.06.14)

小王同学

架构师训练营第二周学习总结

张明森

架构师训练营--第二周学习总结

花花大脸猫

极客大学架构师训练营

分布式锁的几种实现方式

Hollis

Java 分布式 并发编程 分布式锁

Go之如何操作结构体的非导出字段

newbmiao

golang reflect newat unexport

架构师训练营第二周总结

Cloud.

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

Neha Narkhede: 借助Apache Kafka实现大规模流处理-InfoQ