BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Srini Penchikala 关注 37 他的粉丝 ,译者 薛命灯 关注 24 他的粉丝 发布于 2016年10月20日. 估计阅读时间: 4 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

借助Apache KafkaKafka 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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT