代码之家  ›  专栏  ›  技术社区  ›  wandermonk

在Kafka中修复复制分区下

  •  1
  • wandermonk  · 技术社区  · 6 年前

    在我们的生产环境中,我们经常看到分区在复制的同时使用来自主题的消息。我们使用的是卡夫卡0.11。从文件中可以了解到

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

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

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

    2 回复  |  直到 6 年前
        1
  •  0
  •   Doron Levi    6 年前

    我们面临着同样的问题:

    解决方案是:

    1. 重新启动动物园管理员。
    2. 重新启动不复制某些分区的代理\代理。

    没有数据丢失。

    这个问题是由于在zk中有一个错误的状态,在zk中有一个打开的问题,不记得数字了。

        2
  •  -1
  •   wandermonk    6 年前

    在浏览了动物园管理员日志之后,我们发现很少有 信息 警告 日志,这些日志似乎没有提供任何重要信息来确定根本原因。但是,这些日志为我们提供了一些关于Kafka Offset Management中的 消费者偏移量的指导。

    <>日志:

    2018-08-08 03:51:30133[myid:1]-警告[nioservercxn.factory:0.0.0/0.0.0.0:2181:nioservercxn@368]-捕获流结束异常
    endofstreamException:无法从客户端sessionid 0x264fb4ae7ff000d读取其他数据,可能是客户端已关闭套接字。
    在Org.Apache .ZooKeal.Server .NoSoReVCnxn.DoIO(NioServCnxn.java:239)
    在Org.Apache .ZooKeal.Server .NoSoReVCnxN工厂.Run(NioServCnxN工厂.java:203)
    在Java.Lang.Trime.Run(线程.java:748)
    2018-08-08 04:33:09135[myid:2]-信息[processthread(sid:2 cport:-1)::prerequestprocessor@648]-处理会话时获得用户级keeperException ID:0x364f4b4b59dd0014类型:setdata cxid:0x17e zxid:0x50000c51f txtype:-1 reqpath:n/a错误路径:/brokers/topics/uuu consumer-offsets/partitions/46/状态错误:keeperrrorcode=badversion for/brokers/topics/uuuu consumer\u offsets/partitions/46/状态
    < /代码> 
    
    

    来自卡夫卡常见问题解答 [https://cwiki.apache.org/confluence/display/kafka/faq faq howtoreduchecurnsis?什么时候有经纪人离开他们?〔1〕

    ISR主要由以下两个参数控制:replica.lag.time.max.msandreplica.lag.max.messages。我们遵循了以下标准。

    • 从ZooKeeper中删除Kafka创建的所有节点,然后重新启动ZooKeeper集群。
    • Confluent文档建议大多数用例使用1GB。我们可以增加堆的大小。 (https://docs.confluent.io/current/zookeeper/deployment.html jvm)
    • 重新启动Kafka代理并删除所有创建的主题,包括“消费者”偏移。
    • 重新创建所有主题。
    • 重新启动所有的消费者。

    参考文献:

    [https://www.slideshare.net/jjkoshy/offset-management-in-kafka?从“保存”开始。 [http://wanwenli.com/kafka/2016/11/04/kafka group coordinator.html][1]” [http://javierholguera.com/2018/06/13/kafka-defaults-that-you-should-re-consider-i/][1] [https://cwiki.apache.org/confluence/display/kafka/faq faq howtoreduchecurnsis?什么时候有经纪人离开他们?〔1〕 [https://grokbase.com/t/kafka/users/143E19twfg/zookeeper exception][1]

    苏美尔偏移
    卡夫卡补偿管理中的主题。

    原木:

    2018-08-08 03:51:30,133 [myid:1] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@368] - caught end of stream exception
    EndOfStreamException: Unable to read additional data from client sessionid 0x264fb4ae7ff000d, likely client has closed socket
    at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:239)
    at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:203)
    at java.lang.Thread.run(Thread.java:748)
    2018-08-08 04:33:09,135 [myid:2] - INFO [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@648] - Got user-level KeeperException when processing sessionid:0x364fb4b59dd0014 type:setData cxid:0x17e zxid:0x50000c51f txntype:-1 reqpath:n/a Error Path:/brokers/topics/__consumer_offsets/partitions/46/state Error:KeeperErrorCode = BadVersion for /brokers/topics/__consumer_offsets/partitions/46/state
    

    来自卡夫卡常见问题解答 [https://cwiki.apache.org/confluence/display/kafka/faq faq howtoreduchecurnsir?什么时候有经纪人离开他们?〔1〕

    ISR主要由两个参数控制:replica.lag.time.max.msreplica.lag.max.messages。我们遵循下面的星光大道。

    • 从zookeeper中删除kafka创建的所有节点,并重新启动zookeeper集群。
    • Confluent文档建议大多数用例使用1GB。我们可以增加堆的大小。 (https://docs.confluent.io/current/zookeeper/deployment.html#jvm)
    • 重新启动Kafka代理并删除所有创建的主题,包括“消费者”偏移。
    • 重新创建所有主题。
    • 重新启动所有用户。

    参考文献:

    [https://www.slideshare.net/jjkoshy/offset-management-in-kafka?从\操作=保存][1] [http://wanwenli.com/kafka/2016/11/04/kafka集团协调员.html][1] [http://javierholguera.com/2018/06/13/kafka-defaults-that-you-should-re-consider-i/][1] [https://cwiki.apache.org/confluence/display/kafka/faq faq howtoreduchecurnsir?什么时候有经纪人离开他们?〔1〕 [https://grokbase.com/t/kafka/users/143E19twfg/zookeeper exception][1]