kafka幂等和事务性生产者设置之间的区别?

时间:2020-02-18 14:57:49

标签: apache-kafka kafka-producer-api

设置kafka生产商以使用幂等行为和事务性行为时:

我了解,对于幂等性,我们设置: enable.idempotence=true 并通过更改生产者上的这一标志来保证我们可以一次准确地交付事件?

对于交易,我们必须走得更远并设置transaction.id=<some value> 但是通过设置此值,它将幂等性设置为true吗?

此外,通过将以上一项或两项设置为true,生产者还将设置acks = all。

通过上述内容,我是否可以仅通过更改启用等幂设置来添加“恰好一次交货”?如果我想走得更远并启用事务支持,那么在消费者方面,我只需要更改其设置isolation.level=read_committed?此图像是否反映了如何根据EOS设置producer

enter image description here

1 个答案:

答案 0 :(得分:1)

是的,您了解主要概念。

通过启用幂等,生产者会自动将acks设置为all,并保证在生产者实例的生存期内传递消息。

通过启用事务,生产者将自动启用幂等(和acks=all)。交易允许对产生的请求进行分组并抵消提交,并确保全部或全部不提交给Kafka。

使用事务时,可以通过将isolation.level设置为read_committed来配置消费者是否只应查看已提交事务中的记录,否则默认情况下,他们将看到所有记录,包括丢弃的事务中的记录。