【问题标题】:Fixing under replicated partitions in kafka修复kafka中的复制分区
【发布时间】:2020-04-26 03:26:43
【问题描述】:

在我们的生产环境中,我们经常看到分区在使用来自主题的消息时复制不足。我们使用的是 Kafka 0.11。从文档中可以理解的是

配置参数replica.lag.max.messages 被移除。分区领导者在决定哪些副本同步时将不再考虑滞后消息的数量。

配置参数replica.lag.time.max.ms 现在不仅指自上次从副本获取获取请求以来经过的时间,还指自上次从副本赶上以来的时间。仍在从领导者那里获取消息但没有赶上replica.lag.time.max.ms 中最新消息的副本将被视为不同步。

我们如何解决这个问题?副本不同步的不同原因是什么?在我们的场景中,我们在刀片服务器的单个 RACK 中拥有所有 Kafka 代理,并且都使用具有 10GBPS 以太网(单工)的相同网络。我看不出副本由于网络原因而失去同步的任何原因。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    我们遇到了同样的问题:

    解决方案是:

    1. 重启 Zookeeper 领导者。
    2. 重新启动未复制某些分区的代理\代理。

    没有数据丢失。

    问题是由于 ZK 中的错误状态,ZK 上有一个未解决的问题,不记得编号。

    【讨论】:

    • 我们遇到了同样的问题,这对我们有用。你有 ZK 问题的链接吗?
    • 在不接触 zookeeper 的情况下有没有其他方法可以做到这一点?稳定法定人数和面临脑裂问题是我们无法处理的事情
    • 我通过“just” bouncing kafka (2.1) 修复了类似的问题
    • 我也遇到了同样的问题,重启kafka broker可以解决我的问题~
    【解决方案2】:

    我在 Kafka 2.0 上遇到了同样的问题, 重新启动 Kafka 控制器节点时,所有内容都在副本上。

    但仍在寻找少数分区复制不足而同一主题的同一节点上的其他分区运行良好的原因,我在随机分区上看到了这个问题。

    【讨论】:

      【解决方案3】:

      不要同时对所有主题进行重新分配,考虑对小部分进行重新分配。

      1. 查找分区复制不足且无法完成重新分配过程的主题。
      2. 将此主题的unclean.leader.election.enable 设置为true
      3. 查找该主题的复制不足的分区。检查其领导者 ID。
      4. 停止代理(只是服务,而不是实例)。
      5. 执行Preferred Replica Election(在 yahoo/kafka-manager 中或手动执行)。
      6. 重新启动代理。

      对其他有相同问题的主题重复此操作。

      我也试过这个建议,但对我没有帮助:https://stackoverflow.com/a/51063607/1929406

      【讨论】:

      • 如何将 unclean.election 设置为特定主题? server.properties 中不是集群级别的配置吗
      • 我使用了 Kafka 管理器。您可以打开一个主题并按“更新配置”为其设置单独的设置。现在项目更名为:github.com/yahoo/CMAK
      【解决方案4】:

      我尝试了@kivagant 在 0.11.0 上给出的选项,刚刚做了 3,4,删除了被击中的分区日志,6 重新分配完成

      【讨论】:

        猜你喜欢
        • 2016-07-09
        • 1970-01-01
        • 2021-07-30
        • 2020-03-07
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-30
        相关资源
        最近更新 更多