首先,我从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));
最佳答案
只要您不写入数据,并且在读取器开始执行时该数据已经被填充,那么只要读取器所引用的引用,您就不会从同时读取该数据中获得任何数据竞争。数据保持不变。
tl; dr:正如您在代码片段中指定的那样,否。