略小赞 2024-05-07 17:46 采纳率: 0%
浏览 14

kafka故障恢复后,一些副本不会自动同步,求指导

kafka故障恢复后,副本不会自动同步
kafka遇到IO负载高的情况,修复了负载问题之后,大部分副本已经同步,但有小部分副本一直不回自动同步,一天了,怎么处理?求指导。

[ec@htkf-1-1 ~]$kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --under-replicated-partitions
    Topic: alg_audio_asr    Partition: 8    Leader: 1    Replicas: 4,1    Isr: 1                 
    Topic: alg_pornservice    Partition: 2    Leader: 3    Replicas: 2,3,5    Isr: 3,5               
    Topic: alg_tcp_result    Partition: 2    Leader: 3    Replicas: 2,1,3    Isr: 3,1               
    Topic: alg_tcp_result    Partition: 3    Leader: 3    Replicas: 3,2,5    Isr: 3,5               
    Topic: alg_tcp_result    Partition: 6    Leader: 3    Replicas: 2,3,5    Isr: 3,5               
    Topic: manual_audit_result    Partition: 0    Leader: 1    Replicas: 2,5,1    Isr: 1,5           
    Topic: manual_audit_result    Partition: 3    Leader: 1    Replicas: 1,3,5    Isr: 1,5           
    Topic: manual_audit_result    Partition: 9    Leader: 1    Replicas: 3,5,1    Isr: 1,5           
    Topic: office_helper    Partition: 8    Leader: 2    Replicas: 1,5,2    Isr: 2,5               
    Topic: office_helper    Partition: 15    Leader: 1    Replicas: 3,5,1    Isr: 1,5               
    Topic: office_helper    Partition: 26    Leader: 1    Replicas: 4,5,1    Isr: 1,5               
    Topic: office_helper    Partition: 30    Leader: 1    Replicas: 3,5,1    Isr: 1,5  

如alg_audio_asr的Partition: 8的 Replicas: 4一直不会成为同步副本。

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-07 17:47
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,看起来有一些Kafka副本在故障恢复后没有正确地重新加入ISR(In Sync Replica)。这可能是由于各种原因,比如网络延迟、磁盘I/O问题或者是Kafka配置问题等。为了尝试解决这个问题,您可以按照以下步骤进行操作:

    1. 检查节点健康状况: 确保所有涉及的broker节点都正常运行且没有资源限制(例如内存、磁盘空间)。

    2. 确认日志信息: 检查出问题的broker节点的日志文件,查找与这些分区相关的错误消息,可能能提供关于为何副本未同步的线索。

    3. 调整配置参数: 可以考虑调整replica.lag.time.max.ms参数,这是Kafka允许副本落后于leader的最大时间。默认情况下,如果一个副本落后的时间超过这个值,它将被踢出ISR。增大这个值可能会允许更多的恢复时间。

    4. 手动重启副本: 在某些情况下,可能需要手动重启问题副本所在的broker,以便强制其重新加入 ISR。

    5. 删除并重建问题分区: 如果上述方法无效,可以考虑删除问题分区,并让Kafka自动重建。这是一个更激进的方法,因为它会丢失该分区的数据。

    以下是手动删除和重建分区的命令示例:

    # 删除分区
    ./kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic alg_audio_asr --partition 8
    
    # 等待一段时间,确保删除完成
    sleep 10s
    
    # 创建新分区,保持原有主题和副本设置
    ./kafka-topics.sh --zookeeper 127.0.0.1:2181 --create --topic alg_audio_asr --partitions 8 --replication-factor 3 --if-not-exists
    
    1. 检查ZooKeeper状态: 验证ZooKeeper中的节点是否正确,特别是与ISR相关的信息。

    2. 监控网络延迟: 使用ping或traceroute工具检查集群内部节点之间的网络延迟,确保网络通信正常。

    3. 更新Kafka版本: 如果是旧版本的Kafka,可能存在已知的问题。升级到最新稳定版可能会解决问题。

    4. 联系支持团队: 如果以上所有方法都无法解决问题,可能需要寻求Kafka社区的帮助,或者联系Kafka的官方支持团队,因为他们可能能提供更深入的技术支持。

    请根据您的实际情况执行上述步骤,每一步骤完成后,请检查副本是否已重新加入ISR。如果有任何具体错误或进一步的细节,请提供,这样我可以提供更针对性的建议。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月7日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见