Apache kafka 备份/恢复卡夫卡和zookeeper
我正在运行一个简单的3节点Apache kafka 备份/恢复卡夫卡和zookeeper,apache-kafka,backup,apache-zookeeper,restore,Apache Kafka,Backup,Apache Zookeeper,Restore,我正在运行一个简单的3节点kafka和5节点zookeeper来运行kafka,我想知道备份我的kafka的好方法是什么,我的zookeeper也是这样 目前,我只是将我的数据目录导出到一个s3 bucket 谢谢。扎兰多最近发表了一篇不错的文章。卡夫卡备份通常有两条路径: 维护第二个Kafka集群,所有主题都复制到该集群。我还没有验证这个设置,但是如果偏移主题也被复制,那么切换到另一个集群应该不会损害消费者的处理状态 将主题转储到云存储,例如使用S3连接器(如Zalando所述)。在恢复的情
kafka
和5节点zookeeper
来运行kafka
,我想知道备份我的kafka
的好方法是什么,我的zookeeper
也是这样
目前,我只是将我的数据目录导出到一个s3 bucket
谢谢。扎兰多最近发表了一篇不错的文章。卡夫卡备份通常有两条路径:
- 维护第二个Kafka集群,所有主题都复制到该集群。我还没有验证这个设置,但是如果偏移主题也被复制,那么切换到另一个集群应该不会损害消费者的处理状态
- 将主题转储到云存储,例如使用S3连接器(如Zalando所述)。在恢复的情况下,您可以重新创建主题,并从云存储中向其提供数据。这将允许您进行时间点恢复,但消费者必须从头开始阅读主题
注意:尽管他们提到了参展商的使用,但在使用Burry进行备份时,实际上并不需要使用它进行备份。Apache Kafka已将您的数据保持分布式,并提供了强大的一致性功能 首先,从体系结构设计的角度来看,我们需要了解备份对我们意味着什么
- 是为了在数据中心故障中幸存下来吗 正如您在评论中所说的,想象一下,当您的整个数据中心关闭时,这意味着该数据中心中运行的所有东西都消失了,而不仅仅是卡夫卡。要处理此类故障,您需要设计一个到不同数据中心的实时复制策略&您可以使用maker实现这一点。您需要在不同的数据中心(不一定具有相同的硬件资源)中设置kafka群集,然后将当前的数据中心kafka配置为镜像到此其他数据中心
- 它只是在备份卡夫卡/动物园管理员的数据吗
- 将数据传输到AWS S3、Google和Mircosoft云存储。 我相信你也可以为所有大型云提供商找到一些专用连接器。在将卡夫卡数据备份到高可用云存储时,需要考虑的事项很少
- kafka对每个主题都有数据保留策略,因此旧数据将由kafka自己从kafka服务器中删除,但它仍将保留在您的AWS S3存储桶中,因此,如果在发生恢复事件时直接将其复制回来,那么您将在Kafka代理上看到更多数据,而且将整个数据恢复到现有运行的Kafka集群中也不是一个好主意,因为这样您将开始处理旧数据。因此,在这个过程中要有选择性和谨慎
- 对于zookeeper,您也可以将数据复制到AWS S3,但由于存在临时节点,因此在恢复时需要小心。我发现了几个有帮助的链接:
因为您正在复制模式下运行。备份是什么意思?如果我的卡夫卡所在的数据中心烧坏了,我该怎么做?即使我得到了复制,我也希望能够对其进行备份和恢复:)kafka中的消息生存时间有限,不管怎样,是否要存储当前状态,还是卡夫卡所包含的所有数据的历史系列?你可以考虑在另一个地理位置上运行另一个卡夫卡集群并复制流向它。“杰夫,这就是我最近添加的内容。我只想要当前状态,以防维护另一个Kafka群集,并想象原始群集因高网络负载或任何其他原因而中断的情况,如果将数据复制到该群集,则确保第二个群集不会因相同原因失败。虽然我希望卡夫卡不会因为高网络负载而损坏数据,但我希望它仍能受到人为错误的保护。Kafka Streams越来越流行,它存储处理状态。在某些情况下,停机并可能丢失一些数据,但恢复意外损坏的状态比让它在损坏的状态下运行要容易得多。不过,这将取决于您的用例,取决于您是否真正关心。对于我们的用例,我们是