自动部署Kafka Stream应用

Dav*_*ral 4 apache-kafka apache-kafka-streams

我刚刚开始使用Kafka和Kafka Streaming Applications.我写了一个Kafka Stream应用程序,它消耗一个主题,处理这些消息,并将它们发送到另一个主题.

据我所知,我发现运行此Kafka Stream应用程序编码的唯一方法是:

  • 从IDE运行Java类.
  • 生成*.jar文件并从提示符运行它.

我想知道是否有任何方法可以在Kafka服务器启动时自动运行Kafka Streaming Applications.例如:将*.jar文件复制到我的Kafka安装的某个文件夹中,并在启动Kafka服务器时自动运行此流应用程序.

Dmi*_*sky 6

您的Kafka代理(服务器)和您的Kafka Streams应用程序彼此独立.您可以启动它们,但是您可以管理服务器上的进程,无论是initd还是systemd,还是基于容器的解决方案,如Docker或Kubernetes.

根据我的经验,如果您的流应用程序在您的经纪人或ZooKeeper之前启动,那么它可能会超时等待它们上线.因此,您可能需要将流进程配置为在这种情况下重新启动.

  • 我不明白"这可能吗?" 是的,有可能:启动代理时,在下一个命令中启动流应用程序.我在你的问题中遗漏了什么?如果你运行它,你运行它.如果你不这样做,你就不会.你是什​​么意思"自动?" 这完全取决于您的部署机制.代理和您的Kafka Streams应用程序彼此之间没有任何关系,因此您可以在部署设备促进部署的情况下自动运行它们. (2认同)