簡體   English   中英

Kafka-streams 中的 StreamPartitioner 是線程安全的嗎?

[英]Is StreamPartitioner in Kafka-streams thread-safe?

我正在構建簡單的 kafka-streams 應用程序。我需要使用多個線程和自定義 StreamPartitioner:

props.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, "3");

Partitioner partitioner = new Partitioner();
textLines.to(OUT_TOPIC, Produced.streamPartitioner(partitioner));

我可以確定不同的線程將使用自己的分區器實例嗎? 如果沒有,我該如何執行?

不會。創建的分區程序實例將在所有線程中共享。

通常,分區器是無狀態的,因此共享實例不是問題。 如果您確實共享了 state,則需要以線程安全的方式實現 class。

作為替代方案,應該可以直接配置生產者的分區器,方法是在StreamsConfig上設置partitioner.class配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM