【问题标题】:Kafka Streams application deployment - embedded vs application management frameworksKafka Streams 应用程序部署 - 嵌入式与应用程序管理框架
【发布时间】:2017-11-15 15:34:29
【问题描述】:

我对 Kafka Streams 很陌生。现在我正在尝试了解这个系统的基本原理。

这是引用自以下文章https://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple/

You just use the library in your app, and start as many instances of the app as you like, and Kafka will partition up and balance the work over these instances.

现在我不清楚它是如何工作的。 Kafka Streams 的业务逻辑(计算任务)将在哪里执行?它将在我的应用程序内部执行,或者它只是 Kafka 集群的客户端,并且该客户端只会准备将在 Kafka 集群上执行的任务?如果不是,如何正确扩展我的 Kafka Streams 应用程序的计算能力?是否可以在 Yarn 或类似的东西内部执行?这种方式是将Kafka Streams应用程序实现为核心应用程序的嵌入式组件(在我的例子中假设为Web应用程序)是一个好主意,或者它应该作为一个单独的服务实现并部署到Yarn / Mesos(如果可能的话) 与主 Web 应用程序分开?另外,如何准备 Kafka Streams 应用程序,以便使用 Yarn/Mesos 应用程序管理框架进行部署?

【问题讨论】:

    标签: apache-kafka apache-kafka-streams


    【解决方案1】:

    您的流处理代码在您的应用程序中运行——它在 Kafka 集群中运行。

    您可以随意部署:Yarn/Mesos/kubernetes/WAR/Chef 等等。想法是将其直接嵌入到您的应用程序中,以避免设置处理集群。

    您无需为部署方法准备 Kafka Streams —— 它完全不知道如何部署。对于 Yarn/Mesos,您可以将其部署为框架内的任何其他 Java 应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 2016-12-27
      • 2021-08-13
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多