【问题标题】:Kafka panics Hyperledger fabric orderer卡夫卡恐慌 Hyperledger 织物订购者
【发布时间】:2018-06-01 07:26:03
【问题描述】:

我在订购者日志中收到此错误:

2018-05-31 19:22:31.010 IST [orderer/consensus/kafka] try -> DEBU 2a3 [channel: testchainid] Need to retry because process failed = kafka server: The requested offset is outside the range of offsets maintained by the server for the given topic/partition.

由于这个错误,区块链上的写入操作没有发生。

如果有人知道这个错误,请告诉我

【问题讨论】:

    标签: apache-kafka apache-zookeeper hyperledger-fabric


    【解决方案1】:

    我只是在测试可能会破坏我的网络或将其置于不一致状态时才看到此错误。

    根据我的经验,它与为主题提供服务的 Leader Kafka Broker 相关联,偏移量低于 Orderer 的预期。我可以通过硬重置 Kafka Brokers 来创建错误,因此它们是新鲜的,但 Orderer 和网络的其余部分不是。或者通过硬重置 Zookeeper,以便当来自消费者和生产者(订购者)的请求进入时,他们将其视为新主题,并可能将领导者代理分配给该主题不是最新的代理。

    我不确定您的网络是如何进入该状态的,但我很确定该错误与 Orderer 要求的 Offset 值高于领导 Kafka Broker 对该主题的值有关。基本上就像数组的索引超出范围错误。

    由于我只是在试验,为了解决这个问题,我刚刚重新启动了整个网络(删除所有数据持久性)。

    【讨论】:

    • 如果是实时应用程序,我无法删除所有数据。有什么解决办法吗?
    • 我不能 100% 确定您是如何遇到该错误的,但您可能会滚动硬重置所有订购者。这完全取决于您是否可以确认您的 Kafka 经纪人实际上是最新的所有交易。我认为您可以通过启动新的订购者来确认这一点。新的订购者将从您所有频道上的偏移量 0 开始,并赶上您当前的订购者,或者至少是最后一个“稳定”点。如果该状态正常,我认为您可以硬重置您的实际订购者,他们也会这样做。检查新 orderer 到达的区块号,并与 orderer 和 peers 进行比较
    • 哦,还有,确认哪个broker是Topic testchainid的leader broker,然后将它的日志与集群中其他broker的日志进行比较。确保领导代理具有相同或最新的日志。
    猜你喜欢
    • 2018-02-18
    • 2021-05-05
    • 1970-01-01
    • 2020-08-27
    • 2015-08-30
    • 1970-01-01
    • 2017-02-21
    • 2019-07-03
    • 2018-05-05
    相关资源
    最近更新 更多