写点什么

Jay Kreps 谈基于 Apache Kafka 和 Kafka Streams 的分布式流处理

  • 2016-10-19
  • 本文字数:1116 字

    阅读完需:约 4 分钟

借助 Apache Kafka Kafka Streams 框架可以更好地搭建以流为中心的架构和开发分布式流处理应用程序。Confluent 的 CEO Jay Kreps 在上周举行的 2016 响应式峰会上为我们带来了有关流处理和微服务的演讲

Jay 说,人们已经在数据库技术上做了很多研究,但在消息队列上做得并不多。在基于微服务的系统架构里,消息传递可以作为服务的强有力后盾。

他提到了三种编程范式:请求 / 响应、批处理和流处理,以及这三种范式之间的区别。流处理同时适用于在线和批处理两种场景。流处理并不是更快的 MapReduce,而是处理和分析数据的另一种范式。Jay 介绍了 Kafka 的四种有关流处理的核心API :Producer、Consumer、Connector 和Streams。

Kafka Streams 是一个 Java 类库,可以用来构建具有容错能力的分布式流处理应用程序。它支持 map、filter、aggregate(count、sum)和 join 这些方法。

在大会的另一个演讲里,来自UC Santa Cruz 的 Peter Alvaro 谈到如何为大规模分布式容错系统做自动故障测试。他提到了沿袭驱动故障注入(Lineage-Drive Fault Injection, LDFI )方法,这种方法利用日志跟踪信息来识别冗余计算,有助于测试的进行。

Peter 总结了系统故障测试需要具备的四个条件:

  • 真实的问题
  • 真实的系统
  • 思考时间
  • 故障自由

关于这个话题的更多信息,可以在 Netflix博客上看到。

大会第二天的活动内容包括Jan Machacek 带来的“从单体到微服务”以及Anil Gursel 和Akara Sucharitakul 带来的“使用Akka Streams 和Kafka 进行回压”。

Jan Machacek 介绍了如何使用 Akka、Scala 和 Kafka 开发一个微服务系统。这个系统还使用了 Apache Cassandra 作为数据存储,还有 RabbitMQ,以及在 Apache Spark 里运行的批处理分析代码。他建议我们在开发分布式系统时要有很好的监控和跟踪能力。每个微服务都可能会发布自己的内部 API,开发者们要知道如何使用它们。

Anil Gursel 和 Akara Sucharitakul 讲述了他们在 PayPal 利用 Akka Streams 和 Kafka 的回压能力来应对突发性负载的经历。他们举了一个 Web 爬虫的例子,并告诉我们他们是如何利用 Kafka 的缓冲能力和 Akka Streams 的回压异步处理能力来应对突发性负载的。

Akka Streams 框架提供了纯异步流处理,具有响应式流的特点。他们还讲到了 Squbs ,Squbs 是 PayPal 开发的一个响应式平台,并具有引导启动、生命周期管理能力,可以用于构建松耦合的模块化系统,并为日志和监控提供了集成接口。

查看英文原文: Jay Kreps on Distributed Stream Processing with Apache Kafka and Kafka Streams


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-10-19 19:003391
用户头像

发布了 322 篇内容, 共 159.2 次阅读, 收获喜欢 148 次。

关注

评论

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

数字人民币真的来了 六年历程全回顾

CECBC

数字货币 DCEP

第 4 周 系统架构总结

bearlu

系统架构

Redis-技术专题-哨兵配置和原理

码界西柚

典型互联网公司使用的技术

happy

spring-boot-route(十二)整合redis做为缓存

Java旅途

Java redis Spring Boot

go-zero流数据处理利器

万俊峰Kevin

stream functional Go 语言

spring-boot-route(十一)数据库配置信息加密

Java旅途

Java Spring Boot

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

一个节点

极客大学架构师训练营

第4周 作业一

bearlu

架構師訓練營 week4 作業

ilake

架构师训练营第4周作业

悠哉

架构师训练营第 1 期 -week4

习习

架构师训练营 1 期 - 第四周总结(vaik)

行之

极客大学架构师训练营

Spring学习笔记(一)手写一个简单的Spring

无语

Spring Framework

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

knight

架构师训练营 - 第四周总结

一个节点

极客大学架构师训练营

区块链思维是赋能未来经济的关键思维

CECBC

区块链 经济 技术创新

架构师训练营 1 期 - 第四周作业(vaik)

行之

极客大学架构师训练营

第9周作业

Vincent

极客时间 极客大学

详解「区块链」溯源

netkiller

区块链 防伪 超级账本 标签 区块链产品溯源

第9周总结

Vincent

极客时间 极客大学

CPU 执行程序的秘密,藏在了这 15 张图里

小林coding

操作系统 计算机基础 计算机 编译器、程序语言、CPU 指令

架構師訓練營 week4 總結

ilake

第三周课后练习

大大猫

极客大学架构师训练营

LeetCode题解:144. 二叉树的前序遍历,使用栈,JavaScript,详细注释

Lee Chen

大前端 LeetCode

浅析 Java 内存模型 一

朱华

Java JMM

第四周作业

Geek_4c1353

极客大学架构师训练营

第二周课后练习

大大猫

极客大学架构师训练营

浅析 Java 内存模型 三

朱华

Java volatile JMM

第三周架构师训练营作业

Geek_4c1353

极客大学架构师训练营

甲方日常 27

句子

生活 工作 随笔杂谈 日常

Jay Kreps谈基于Apache Kafka和Kafka Streams的分布式流处理_大数据_Srini Penchikala_InfoQ精选文章