当同步副本不同步且ACK = -1时,记录是否提交给Kafka?

时间:2019-03-20 21:04:28

标签: apache-kafka

运行confluent-kafka 3.3.1e kafka 0.11.0x

  • 我有一个副本= 3的分区。
  • 我的生产者以ack = -1运行
  • 该分区具有1个不同步的副本
  • 重复滞后时间最大值ms = 10000
  • 最小异步副本= 2

1)当ack = -1时,记录将由生产者提交吗?

2)如何使不同步的副本恢复同步?

1 个答案:

答案 0 :(得分:1)

1)只要有acks=-1个同步副本,Kafka就会使用min.insync.replicas接受记录。

因此,假设您的主题的min.insync.replicas是1或2,并且单个副本不同步,那么记录会被Kafka接受

2)在正常情况下,Kafka始终尝试使所有副本保持同步。如果这没有发生,那么您要检查托管不同步副本的代理,因为出了点问题。这个经纪人在运行吗?健康吗它超载了吗?此代理上的其他分区是否也不同步?

Kafka的较旧版本还存在一些复制问题,这可能会导致复制副本不同步。一个好的解决方法是强制重新选举控制器:

zookeeper-shell [ZK_HOST:ZK_POST] rmr /controller