我在玩Apache Kafka,并配置了一个功能强大的多节点集群。现在我想介绍一个Kafka流处理器。我只想做一些简单的事情,但我的问题是:我在哪里运行它我知道我可以在任何机器上作为一个独立的jar运行它,但这是运行它的正确位置吗?我是否在工作节点上运行它?我可以通过分布式Kafka Connect工作者API运行它吗?我看到的文档中说,同一处理器的多个实例将相互了解。。。。怎样这是在Java Kafka库的幕后处理的吗?
基本上,我如何大规模部署处理器?大概我不会手动启动同一处理器的10个(或100或1000个(实例。
请假设我没有为此使用Kubernetes。还假设我正在使用Confluent平台的仅限社区的包。
Kafka Connect不运行Kafka Streams应用程序。
另一方面,ksqlDB为Kafka Streams应用程序提供了抽象层,并提供了嵌入式Connect工作程序。
否则,是的,您只需在任何可以通过网络访问Kafka集群的地方运行Kafka Streams JAR文件。理想情况下,不要在集群本身,因为它将竞争RAM和磁盘空间。
以上都不需要汇流平台。
如何大规模部署处理器?大概我不会手动启动同一处理器的10个(或100或1000个(实例。
好吧,处理器的输入主题活动线程最多只能有一定数量的分区,这些分区由num.stream.threads
和Streams进程的数量控制。
如果你没有部署到Kubernetes中,那么你仍然可以使用其他选项,如Puppet、Ansible、Supervisor、Hashicorp Nomad的Java Driver等。