Kafka 代理中的“提交”数据是什么意思?

D D*_*per 5 apache-kafka kafka-producer-api

在包含 N 个 brokers 的 Kafka 集群中,对于针对某个分区的 Topic T,生产者将数据发布到 Leader broker。Kafka 术语中的术语“提交”是指数据提交到 Leader broker 还是提交到 Leader broker 以及 ISR 列表中可用的相应 Followers。

Thi*_*ilo 5

这是由生产者配置设置控制的,称为ack

  • acks=0如果设置为零,则生产者根本不会等待服务器的任何确认。该记录将立即添加到套接字缓冲区并被视为已发送。在这种情况下,不能保证服务器已收到记录,并且重试配置不会生效(因为客户端通常不会知道任何失败)。为每个记录返回的偏移量将始终设置为 -1。

  • acks=1 (默认)这意味着领导者会将记录写入其本地日志,但会在不等待所有追随者完全确认的情况下做出响应。在这种情况下,如果领导者在确认记录后但在追随者复制它之前立即失败,那么记录将丢失。

  • acks=all这意味着领导者将等待完整的同步副本集确认记录。这保证了只要至少一个同步副本保持活动状态,记录就不会丢失。这是最强有力的保证。