Kafka-backup: 消费者抵消

创建于 2019-06-13  ·  3评论  ·  资料来源: itadventurer/kafka-backup

@azapps首先感谢这个精彩的开源项目。

我正在写一篇关于在 Kubernetes 环境中备份和恢复 Kafka 主题的博文,其中另一个开源项目 OpenEBS 提供了底层持久容器附加存储。

现在我决定使用 Spredfast 的 S3 连接器,但我的朋友 Arash Kaffamanesh 向我指出了你的工作。 我有几个问题。

在恢复时,我如何让消费者知道从哪里开始消费?
您能否分享与 spredfast 的连接器的其他差异?

我的 Kafka 环境在 Kubernetes 中运行。 理想情况下,我希望在集群外部有一个备份/恢复存储位置,以便在发生故障时可以将其取回。

备份位置由target.dir决定,如果环境是 Kubernetes,则很难管理节点上的路径。

最有用的评论

嗨,伊姆兰,

我正在写一篇关于在 Kubernetes 环境中备份和恢复 Kafka 主题的博文,其中另一个开源项目 OpenEBS 提供了底层持久容器附加存储。

使用文件系统快照备份 Kafka 并非易事。 有关详细信息,请参阅https://github.com/azapps/kafka-backup/blob/master/docs/Comparing_Kafka_Backup_Solutions.md

现在我决定使用 Spredfast 的 S3 连接器,但我的朋友 Arash Kaffamanesh 向我指出了你的工作。 我有几个问题。

如果您不需要恢复任何消费者偏移量,S3 连接器似乎非常好。 我深入研究了 S3 连接器的源代码,然后将其视为解决我们问题的解决方案,因为它不提供关键功能,并且很难扩展它来处理这种情况。

在恢复时,我如何让消费者知道从哪里开始消费?

目前唯一的方法是只删除不应该恢复的段并重新创建索引。 很快就会有更多关于如何实现这一目标的信息。 如果您确实需要从非常特定的偏移量开始恢复,请打开一个问题。 这应该不难实现。

您能否分享与 spredfast 的连接器的其他差异?

同样,S3 连接器在恢复期间无法同步消费者偏移量。 事实上,在当前的 Kafka 版本中根本没有办法可靠地做到这一点。 感谢@ryannedolanMirror Maker 2上的工作,很快就会有一种方法可以做到这一点,并且kafka-backup使用该 API。 幸运的是,此更改甚至是向后兼容的,并且很快就会有文档说明如何以这种方式使用kafka-backup

此外,S3 连接器仅支持 S3。 目前kafka-backup仅支持备份到文件系统,然后您可以使用任何工具将其移动到最终目的地。 如果需要,我计划添加对更多存储后端的支持。

除此之外,这两个项目在架构上非常相似(事实上,S3 连接器和 Mirror Maker 2 的灵感来自kafka-backup

我的 Kafka 环境在 Kubernetes 中运行。 理想情况下,我希望在集群外部有一个备份/恢复存储位置,以便在发生故障时可以将其取回。

据我所知,您也在使用 Strimzi,我们有相同的备份。 我将尽快写一篇博文,介绍如何对 Kafka 和(不要忘记!)Kubernetes 和 Strimzi 上的 Zookeeper 进行完整备份。

备份位置由 target.dir 确定,如果环境是 Kubernetes,则很难管理节点上的路径。

只需像往常一样挂载一个持久卷。 使用边车容器将其移动到您的最终目的地。 您甚至可以保持相对较小的持久卷,因为您可以在完成后立即删除旧段及其索引。 (文档来了)

如果您再等几天,我将发布一篇介绍您的一些主题的介绍性博客文章。 给我写一封电子邮件或向@arashkaffamanesh 索要草稿:wink:

所有3条评论

嗨,伊姆兰,

我正在写一篇关于在 Kubernetes 环境中备份和恢复 Kafka 主题的博文,其中另一个开源项目 OpenEBS 提供了底层持久容器附加存储。

使用文件系统快照备份 Kafka 并非易事。 有关详细信息,请参阅https://github.com/azapps/kafka-backup/blob/master/docs/Comparing_Kafka_Backup_Solutions.md

现在我决定使用 Spredfast 的 S3 连接器,但我的朋友 Arash Kaffamanesh 向我指出了你的工作。 我有几个问题。

如果您不需要恢复任何消费者偏移量,S3 连接器似乎非常好。 我深入研究了 S3 连接器的源代码,然后将其视为解决我们问题的解决方案,因为它不提供关键功能,并且很难扩展它来处理这种情况。

在恢复时,我如何让消费者知道从哪里开始消费?

目前唯一的方法是只删除不应该恢复的段并重新创建索引。 很快就会有更多关于如何实现这一目标的信息。 如果您确实需要从非常特定的偏移量开始恢复,请打开一个问题。 这应该不难实现。

您能否分享与 spredfast 的连接器的其他差异?

同样,S3 连接器在恢复期间无法同步消费者偏移量。 事实上,在当前的 Kafka 版本中根本没有办法可靠地做到这一点。 感谢@ryannedolanMirror Maker 2上的工作,很快就会有一种方法可以做到这一点,并且kafka-backup使用该 API。 幸运的是,此更改甚至是向后兼容的,并且很快就会有文档说明如何以这种方式使用kafka-backup

此外,S3 连接器仅支持 S3。 目前kafka-backup仅支持备份到文件系统,然后您可以使用任何工具将其移动到最终目的地。 如果需要,我计划添加对更多存储后端的支持。

除此之外,这两个项目在架构上非常相似(事实上,S3 连接器和 Mirror Maker 2 的灵感来自kafka-backup

我的 Kafka 环境在 Kubernetes 中运行。 理想情况下,我希望在集群外部有一个备份/恢复存储位置,以便在发生故障时可以将其取回。

据我所知,您也在使用 Strimzi,我们有相同的备份。 我将尽快写一篇博文,介绍如何对 Kafka 和(不要忘记!)Kubernetes 和 Strimzi 上的 Zookeeper 进行完整备份。

备份位置由 target.dir 确定,如果环境是 Kubernetes,则很难管理节点上的路径。

只需像往常一样挂载一个持久卷。 使用边车容器将其移动到您的最终目的地。 您甚至可以保持相对较小的持久卷,因为您可以在完成后立即删除旧段及其索引。 (文档来了)

如果您再等几天,我将发布一篇介绍您的一些主题的介绍性博客文章。 给我写一封电子邮件或向@arashkaffamanesh 索要草稿:wink:

@azapps的贡献是独特而令人敬畏的,我想整个社区应该帮助获得@azapps提出和实施的 Kafka 备份,使其成为 Kafka 生态系统的标准化部分!

没有什么是完美的,但@azapps的这个实现非常棒!

备案:我们开始: https: //medium.com/@anatolyz/introducing -kafka-backup-9dc0677ea7ee

此页面是否有帮助?
0 / 5 - 0 等级