Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我只想同时阅读消费记录时,是否必须同步消费记录?_Java_Multithreading_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Java 当我只想同时阅读消费记录时,是否必须同步消费记录?

Java 当我只想同时阅读消费记录时,是否必须同步消费记录?,java,multithreading,apache-kafka,kafka-consumer-api,Java,Multithreading,Apache Kafka,Kafka Consumer Api,当我从kafka轮询数据并需要使用异步方法读取记录时,我很困惑访问consumerRecords是否是线程安全的 代码片段如下所示: ConsumerRecords<String,String> consumerRecords = kafkaConsumer.poll(100); //1. asynchronously read topic1 foo.asynMethod1(consumerRecords(topic1)); //2. asynchronously read topi

当我从kafka轮询数据并需要使用异步方法读取记录时,我很困惑访问consumerRecords是否是线程安全的

代码片段如下所示:

ConsumerRecords<String,String> consumerRecords = kafkaConsumer.poll(100);
//1. asynchronously read topic1
foo.asynMethod1(consumerRecords(topic1));
//2. asynchronously read topic2
bar.asynMethod2(consumerRecords(topic2));
ConsumerRecords ConsumerRecords=kafkaConsumer.poll(100);
//1. 异步读取主题1
foo.asynMethod1(消费者记录(主题1));
//2. 异步读取主题2
bar.asynMethod2(消费者记录(主题2));
只要您不写入一段数据,并且读卡器开始执行时该数据已经被填充,只要读卡器引用数据的引用保持不变,您就不会同时读取该数据,从而获得任何数据竞争

tl;dr:正如您在代码片段中指定的,不。

只要您不写入数据,并且读卡器开始执行时该数据已经填充,您将不会同时读取该数据而获得任何数据竞争,前提是读者参考数据的参考保持不变


tl;dr:正如您在代码片段中指定的那样,不。

这些记录是可编辑的,因此您必须复制或转储到列表中,以避免在这两个文件中增加相同的迭代器methods@cricket_007即使我用两种方法处理不同的主题?只要你使用同一个iterable对象,那么这些记录就是iterable,因此,您必须复制或转储到列表中,以避免在这两个列表中增加相同的迭代器methods@cricket_007即使我用两种方法处理不同的主题?只要你使用相同的iterable对象,那么是的