0

我试图想出一个策略来备份我的 apache ignite 缓存中的数据,该缓存作为有状态集托管在谷歌云 Kubernetes 中。我的 ignite 部署使用 ignite 本机持久性并运行一个 3 节点的 ignite 集群,该集群由 Kubernetes 中的持久性卷备份。我正在使用 binaryConfiguration 将二进制对象存储在缓存中。

我正在寻找一种可靠的方法来备份我的 ignite 数据并能够恢复它。

到目前为止,我已尝试仅备份持久性文件,然后将它们恢复。它还没有可靠地工作。我面临的问题是,还原后,不是二进制对象的缓存数据会正确还原,例如字符串或数字。我可以很好地访问数字或字符串数​​据。但二进制对象不可访问。似乎二进制对象已恢复,但我无法获取它们。

奇怪的是,在恢复之后,一旦我将一个新的二进制对象添加到缓存中,所有恢复的数据似乎都可以正常访问。

谁能建议一种可靠的方法来备份和恢复 ignite 本机持久性数据?

4

2 回答 2

0

您应该备份${ignite.work.dir}/marshaller目录,或者调用ignite.binary().type(KeyOrValue.class)缓存中的每种类型来初始化二进制编组器。

于 2019-01-31T09:30:17.033 回答
0

Apache Ignite 提供了相当可靠的ACID事务。缓存还使用自己的机制进行主备份和副本,并假设您启用了WAL,一些内容保存在内存中。

最有可能发生的事情是您进行了还原,并且在您进行初始写入内存开始填充的那一刻,您可以查看磁盘上的内容(缓存)。这并不是真正受支持的恢复机制(文档中没有),但它可以在恢复后运行次要样本无关写入的方式工作。我建议彻底测试这个。

于 2019-01-30T23:54:26.237 回答