Kafka领导者副本将数据复制到追随者副本时如何决定提高Highwater Mark(HW)

问题描述 投票:4回答:1

我了解了Kafka复制协议。我发现Kafka保持LEO和HW。据我了解,

LEO:副本看到的最新消息的偏移量。

HW:最新消息的偏移量,可以保证每个副本已经看到。

可以将Kafka生产者设置为这些确认方法。

  1. acks = 0
  2. acks = 1
  3. acks = all

所以我的问题是,领导者如何根据卡夫卡生产者使用的确认方法来提高硬件水平。

我的理解是,

  1. 对于acks = 0,Leader会在看到新消息时推进硬件。

  2. for acks = 1,Leader将新消息写入本地日志时,Leader会提高硬件的性能。

  3. for acks = all,当每个跟随者发送确认消息时,领导者都会提高硬件。

这是正确的吗?任何人都可以澄清吗?

apache-kafka replication distributed-system fault-tolerance
1个回答
0
投票

[通过进一步的探索,我发现在硬件配置中设置的硬件升级与确认方法之间没有关系。不管设置为acks,领导副本都将在前进硬件之前等待所有其他关注者保留该消息。

  • 当acks = 0且acks = 1时,领导者一旦看到一条消息,便将ack发送给生产者,一旦将消息持久化到其本地日志中,则发送给他们。但是,在将LEO设置为HW之前,请等待所有其他副本保留该消息。
  • 如果acks = all,而min.insync.replica =复制因子,则领导者需要先等待所有副本保留消息,然后再将ack发送给生产者。仅在这种情况下,领导者将硬件与发送给生产者的确认同步进行。
© www.soinside.com 2019 - 2024. All rights reserved.