Kafka Streams 应用程序部署 - 嵌入式与应用程序管理框架
Kafka Streams application deployment - embedded vs application management frameworks
我是 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 应用程序管理框架进行部署?
您的流处理代码在您的应用程序中 运行 -- 它在 Kafka 集群中 而不是 运行。
您可以随心所欲地部署:Yarn/Mesos/kubernetes/WAR/Chef 随心所欲。这个想法是将它直接嵌入到您的应用程序中,以避免设置处理集群。
您无需为部署方法准备 Kafka Streams——它完全不知道如何部署。对于 Yarn/Mesos,您可以像框架内的任何其他 Java 应用程序一样部署它。
我是 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 应用程序管理框架进行部署?
您的流处理代码在您的应用程序中 运行 -- 它在 Kafka 集群中 而不是 运行。
您可以随心所欲地部署:Yarn/Mesos/kubernetes/WAR/Chef 随心所欲。这个想法是将它直接嵌入到您的应用程序中,以避免设置处理集群。
您无需为部署方法准备 Kafka Streams——它完全不知道如何部署。对于 Yarn/Mesos,您可以像框架内的任何其他 Java 应用程序一样部署它。