【发布时间】: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