[英]KafkaConsumer visibility across threads
我有一個運行兩個線程的應用程序。 這些線程在它們之間共享一個 KafkaConsumer 實例。
KafkaConsumer 是通過禁用自動提交配置創建的。 一個線程將根據一些外部輸入將主題分區分配給 KafkaConsumer 實例。 另一個線程不斷輪詢主題,處理記錄並在最后提交偏移量。
現在,假設主題分區分配在 Thread-1 中已更改。 我們可以做些什么來確保 Thread-2 可以看到這些變化? 即 Thread-2 的 KafkaConsumer 將知道主題分區已在 Thread-1 中更新。
將變量定義為 volatile 能解決這個問題嗎? 或者我們應該做些什么? 請提供您的解釋和代碼示例,因為我是 Java 多線程的新手。
一個線程將根據一些外部輸入將主題分區分配給 KafkaConsumer 實例。 另一個線程不斷輪詢主題,處理記錄並在最后提交偏移量。
根據javadoc( 多線程處理部分):
Kafka 消費者不是線程安全的。
有了這個,我不太確定您可以在一個線程中更改分區分配並查看另一個線程中的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.