卡夫卡为每一条信息生成偏移量。比方说,我正在生成消息5,偏移将从1到5。
但是,在事务性生成器中,例如,我生成了5条消息并提交了,然后生成了5条消息,但是中止了,然后提交了5条消息。
发布于 2018-08-08 15:11:37
isolation.level=read_committed时,消费者将“跳转”从偏移量6到11。transaction.max.timeout.ms经过之后自动超时(中止)。__consumer_offsets中自动完成的),因此它对偏移的工作方式是相同的。通过sendOffsetsToTransaction()添加的已中止或未提交的偏移将自动跳过。正如您在另一个问题中提到的,我建议您看一看KIP,它为Kafka添加了一次精确的语义。它详细说明了所有这些机制,并将帮助您更好地理解:https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging
https://stackoverflow.com/questions/51749566
复制相似问题