Kafka Streams应用程序部署 - 嵌入式应用程序管理框架

时间:2017-11-15 15:34:29

标签: apache-kafka apache-kafka-streams

我对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应用程序分开?另外,如何使用Yarn / Mesos应用程序管理框架准备Kafka Streams应用程序?

1 个答案:

答案 0 :(得分:2)

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

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

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