【问题标题】:What exactly is StreamTask in StreamThread in kafka streams?kafka 流中 StreamThread 中的 StreamTask 到底是什么?
【发布时间】:2020-01-18 12:11:16
【问题描述】:

我试图了解 Kafka Stream 是如何在幕后工作的(更好地了解它),并遇到了 confluent link,它真的很棒。

它表示两个术语,即:StreamThreadsStreamTasks

我无法理解StreamTasks 到底是什么?

  • StreamThread执行的吗?
  • 根据文档,StreamThreads 可以有多个StreamTasks,所以不会有任何数据共享,这个线程不会运行得更慢吗? StreamThread 如何“运行” 多个StreamTasks

任何简单的解释都会有很大的帮助。

【问题讨论】:

    标签: apache-kafka apache-kafka-streams


    【解决方案1】:

    “任务”是可以并行完成的工作的逻辑抽象(即,可以相互独立处理的东西)。 Kafka Streams 基本上为每个输入主题分区创建一个任务,因为不同分区中的数据可以相互独立地处理(这是一种简化,但如果您有一个输入主题,则成立;对于连接,它有点不同)。

    StreamThread 基本上是一个 JVM 线程。任务分配给StreamsThread 执行。在当前的实现中,StreamThread 基本上循环所有任务并为每个任务处理一些输入数据。在这期间,StreamThread(即使用KafkaConsumer)轮询代理以获取所有分配任务的新数据。

    由于任务是相互独立的,因此您可以运行与任务一样多的线程。对于这种情况,每个线程将只执行一个任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2023-03-10
      • 2018-01-12
      • 2013-05-29
      • 2012-06-11
      • 1970-01-01
      相关资源
      最近更新 更多