代码之家  ›  专栏  ›  技术社区  ›  rishi007bansod

在Kafka流中为不同的操作设置不同的线程

  •  1
  • rishi007bansod  · 技术社区  · 7 年前

    我在kafka streams中定义了以下拓扑

    Operation 1 : input_stream ----> filter ----> window_processing ----> write_to_topic
    Operation 2 : input_stream ----> write_to_topic
    

    我观察到这两个操作都是由同一个线程执行的(即使我增加 StreamsConfig.NUM_STREAM_THREADS_CONFIG 螺纹系数)。但现在我希望它们由不同的线程处理 Operation 1 正在减速 Operation 2 . 有没有办法为不同的操作设置不同的线程。与上述情况相同 操作1 正在阻塞和减速 操作2 .

    1 回复  |  直到 6 年前
        1
  •  1
  •   Matthias J. Sax    7 年前

    Kafka Streams通过分区和子拓扑/任务进行并行化。在您的情况下,只有一个子拓扑,因此您只能通过分区进行并行化。因此,您可以并行运行任意多个线程,只要您有输入主题分区,并且每个线程处理一个分区(或者多个分区是因为您的线程少于分区)。

    如果您真的想将两个“操作分支”拆分为独立的线程,则需要编写两个应用程序,而不是一个。