首先我从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:正如您在代码片段中指定的那样,没有。
关于java - 当我只想并发读取ConsumerRecords时,是否必须同步ConsumerRecords?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160968/