gpt4 book ai didi

java - kafkastreams - 增加更多的处理能力

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:40:50 25 4
gpt4 key购买 nike

我正在研究将现有 Flink 应用程序/拓扑转换为使用 KafkaStreams 的 POC。我的问题是关于部署。

具体来说 - 在 Flink 中,将“工作节点”添加到 flink 安装中,然后向拓扑中添加更多并行化以跟上不断增长的数据速率。

随着数据速率的增加,如何增加 KStreams 的容量? KStreams 会自动处理吗?我是否启动更多进程(ala 微服务)?

还是我错过了全局?

最佳答案

Do I launch more processes (ala Micro-services)?

简短的回答是:

  • 答案 1(增加容量):要横向扩展,您只需启动流处理应用程序的另一个实例,例如在另一台机器上。您的应用程序实例将相互了解并自动开始共享处理工作。这可以在实时操作中完成,不会有数据丢失!
  • 答案 2(删除容量):只需停止流处理应用程序的一个或多个正在运行的实例,例如关闭 4 个正在运行的实例中的 2 个。您的应用程序的其余实例将意识到其他实例已停止并自动接管已停止实例的处理工作。这可以在实时操作中完成,不会有数据丢失!

请参阅 http://docs.confluent.io/3.0.0/streams/developer-guide.html#elastic-scaling-of-your-application 处的 Kafka Streams 文档有关详细信息(不幸的是,Kafka Streams 上的 Apache Kafka 文档还没有这些详细信息)。

Or am I missing the big picture here?

big picture就是图其实很好看也很小。 :-)

所以让我添加以下内容,因为我觉得许多用户对其他相关技术的复杂性感到困惑,然后并不真正期望您可以以更简单的方式进行流处理(包括其部署),比如你可以用 Kafka Streams 做什么:

Kafka Streams 应用程序是一个普通的、普通的老式 Java 应用程序,它碰巧使用了 Kafka Streams 库。与现有流处理技术的一个关键区别在于,通过使用 Kafka Streams 库,您的应用程序变得可扩展、有弹性、容错等,而不需要像您那样需要一个特殊的“处理集群”来添加机器为 Flink、Spark、Storm 等做。Kafka Streams 部署模型更简单、更容易:只需启动或停止应用程序的其他实例(即字面上相同的代码)。这基本上适用于任何与部署相关的工具,包括但不限于 Puppet、Ansible、Docker、Mesos、YARN。您甚至可以通过运行 java ... YourApp 手动执行此操作。

关于java - kafkastreams - 增加更多的处理能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com