HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:002743
用户头像

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

关注

评论

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

互金总结系列(1)--开篇

互金从业者X

[架构师训练营] Week01 - 食堂就餐卡系统设计

谭方敏

学习

B端产品经理养成记(4):敏捷项目

涛哥 数字产品和业务架构

敏捷 产品经理

JVM学习笔记——JVM类加载机制

王海

Java 面试 JVM

Kafka零数据丢失的配置方案

奈学教育

kafka

做产品少走弯路:上帝视角(2)

我是IT民工

产品 方法 路径 知识体系

LeetCode 756. Pyramid Transition Matrix

liu_liu

LeetCode

你不能不掌握的软技能——业务语言

KAMI

方法论 开发 沟通 软技能

读《你的灯还亮着吗》

liu_liu

读书感悟

[翻译]The Go Blog《Go maps in action》

卓丁

hashmap map 哈希表 Go 语言

大中台模式下如何构建复杂业务核心状态机组件

奈学教育

中台

SpringMVC中Http请求方式转换(post转换为put/delete等方式)

知春秋

springmvc post post到put方式请求 post到delete方式请求

小师妹学JavaIO之:NIO中那些奇怪的Buffer

程序那些事

io nio Java 25 周年 小师妹 buffer

由一次管理后台定时推送功能引发的对RabbitMQ延迟队列的思考(一)

LSJ

Java RabbitMQ 延迟队列

拙见/ 什么是自驱力?

ZoomQuiet大妈

自我提升 大妈 是也乎 IMHO 蟒营®

Libra白皮书解读

程序那些事

区块链 facebook 数字货币 libra

如何用日记提升写作能力?

石云升

学习 方法 写作

k8s 上运行我们的 springboot 服务之——自动化测试

柠檬

maven DevOps Unit Test

[转载]Go 和 Java的15个主要差异

卓丁

Java Go 语言

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十一)编写测试-动态测试

编程道与术

Java 编程 TDD 单元测试 JUnit

游戏夜读 | 如何面对前景渺茫?

game1night

白话说流——什么是流,从批认识流(二)

KAMI

大数据 flink 流计算

架构师训练营第一周作业

Benjamin

《Golang工具go doc使用透析》

卓丁

godoc go doc 源码阅读 Go 语言

公司治理的两个关键要素:存在的基石 + 成长的飞轮

霍太稳@极客邦科技

发展 公司管理 增长

如何基于 OAM 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

大中台模式下如何构建复杂业务核心状态机组件

古月木易

Libra教程之:Libra协议的关键概念

程序那些事

区块链 libra blockchain 协议

算法基础:排序算法看这一篇就够了

Geek_k6ry2n

排序算法

ARTS WEEK3

紫枫

ARTS 打卡计划

食堂就餐卡系统架构设计文档

dony.zhang

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