[英]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.