Kafka Streams:它是适合您的流处理引擎吗?

在这篇文章中,我们将详细讨论流媒体访问模式以及HDF 3.3和即将发布的HDP 3.1版本中Kafka Streams支持的增加。

在添加Kafka Streams支持之前,HDP和HDF支持两个流处理引擎:带有Storm的Spark Structured Streaming和Streaming Analytics Manager(SAM)。很自然,这会产生以下问题:为什么要在平台上添加第三个流处理引擎?

通过选择使用Spark结构化流式传输或SAM与Storm支持,客户可以选择根据其非功能性需求和用例选择正确的流处理引擎。但是,这些引擎都没有解决我们从客户那里看到的以下类型的要求:

  • 轻量级库,用于构建基于事件的微服务,Kafka作为消息传递/事件主干。
  • 应用程序运行时不应该需要群集。
  • 迎合那些希望以编程方式使用简单API为不太复杂的用例构建流应用程序的应用程序开发人员。
  • 对于一次性语义的要求,其中数据管道仅由Kafka组成。

Kafka Streams解决了这些要求。通过添加Kafka Streams,客户现在可以根据自己的需求和用例选择正确的流处理引擎。下表提供了一些一般指导原则/比较。

上表中包含大量信息。那么,Kafka Streams何时成为您流处理需求的理想选择?考虑以下:

  • 您的流处理应用程序由Kafka到Kafka管道组成。
  • 您不需要/想要另一个集群进行流处理。
  • 您希望在流上执行常见的流处理功能,如过滤,连接,聚合,丰富,以便简化流处理应用程序。
  • 您的目标用户是具有Java开发背景的开发人员。
  • 您的用例是关于构建轻量级微服务,简单的ETL和流分析应用程序。

这三个支持的流引擎中的每一个都使用一组集中的平台服务,提供安全性(身份验证/授权),审计,治理,模式管理和监视功能。

下一步是什么?

在下面的文章中,我们将演示使用与Schema Registry,Atlas和Ranger集成的Kafka Streams,使用虚构的用例构建一组微服务应用程序。

猜你喜欢

转载自blog.csdn.net/Tybyqi/article/details/85265366