我和Kafka一起玩了一会儿 WordCountProcessorDemo
我意识到一定有一部分照片我不见了。也就是说,库如何保证在下面的代码中不会发生脏读:
@Override
public void process(final String dummy, final String line) {
final String[] words = line.toLowerCase(Locale.getDefault()).split(" ");
for (final String word : words) {
final Integer oldValue = this.kvStore.get(word);
if (oldValue == null) {
this.kvStore.put(word, 1);
} else {
this.kvStore.put(word, oldValue + 1);
}
}
context.commit();
}
据我所知,开火后 kvStore.get(..)
状态可能会被另一个streamprocessor示例更改,该示例位于使用不同分区的另一台计算机上。因此,由于执行了脏读,状态将变得不一致。
Kafka是否以某种方式处理了这种情况?
1条答案
按热度按时间hjqgdpho1#
状态可能会被另一个streamprocessor示例更改
不是真的。国家是分裂的,因此每个国家
Processor
在整个州有自己的专属份额。