如何从终止的 pulsar bookie 中恢复

Posted

技术标签:

【中文标题】如何从终止的 pulsar bookie 中恢复【英文标题】:How to recover from a terminated pulsar bookie 【发布时间】:2021-11-17 22:53:45 【问题描述】:

我们正在运行 Apache Pulsar 2.72。在使用 5 节点 (aws r5ad.2xlarge) bookie 集群 (4.12.0) 的 Prod 中。其中一个节点被终止。根据我们的 ASG,一个新节点出现并加入了集群。 博彩公司有

    autoRecoveryDaemonEnabled=true lostBookieRecoveryDelay=0 bookkeeperClientMinNumRacksPerWriteQuorum=2 managedLedgerDefaultEnsembleSize=3 managedLedgerDefaultWriteQuorum=3

但是,账本重新复制并没有发生。我尝试使用 sudo /opt/apache-pulsar/apache-pulsar-2.7.2/bin/bookkeeper shell decommissionbookie -bookieid bookieIP:port 停用终止的节点,但它卡在 23:53:36.465 [main] INFO org.apache.bookkeeper.client.BookKeeperAdmin - 需要重新复制的分类帐计数:793 00:03:37.293 [main] INFO org.apache.bookkeeper.client.BookKeeperAdmin - 需要重新复制的分类帐计数:793 00:13:38.119 [main] INFO org.apache.bookkeeper.client.BookKeeperAdmin - 需要重新复制的分类帐计数:793 00:23:39.194 [main] INFO org.apache.bookkeeper.client.BookKeeperAdmin - 需要重新复制的分类帐计数:793 00:33:39.995 [main] INFO org.apache.bookkeeper.client.BookKeeperAdmin - 需要重新复制的分类帐计数:793 超过30分钟。我们甚至尝试使用 sh bookkeeper shell listunderreplicated 获取复制不足的分类帐,并使用 sh bookkeeper shell ledger -m 读取一些返回的分类帐,但失败并出现异常,抱怨无法访问已终止的 bookie。我们最终删除了复制不足的分类帐。

我正在寻找一个建议,以最好地从终止的 bookie 中恢复,因为我们不得不删除分类帐

【问题讨论】:

我看到了一个错误,它导致空分类帐似乎卡住并保持在复制状态,但我不确定它是否已被报告。下次发生这种情况时,请使用示例分类帐和条目 ID 更新您的帖子。对于合法的分类账,我们从来没有遇到过它们无法复制的问题。 【参考方案1】:

现在 Apache Pulsar 2.8.1 已经发布,您能否升级并重试。这似乎很不寻常。

要在一个地点接触所有 Pulsar 人,请注册参加峰会

https://streamnative.io/en/blog/community/2021-09-07-speakers-announced-for-pulsar-virtual-summit-europe-2021/

【讨论】:

以上是关于如何从终止的 pulsar bookie 中恢复的主要内容,如果未能解决你的问题,请参考以下文章

Pulsar 的消息存储机制和 Bookie 的 GC 机制原理

Pulsar介绍

pulsar 中的 exactly once 语义

pulsar 中的 exactly once 语义

pulsar 中的 exactly once 语义

从Kafka到选择Apache Pulsar