【问题标题】:lost data when stopping server [Infinispan]停止服务器时丢失数据 [Infinispan]
【发布时间】:2023-03-12 09:55:01
【问题描述】:

在我的项目中,我使用 infinispan 来管理我的数据并提高性能, 所以我有一个问题是当我们停止服务器并重新启动它时,我的所有数据都被删除了,这是正常的,因为它是一个缓存。

所以如果您有建议让我保存我的应用程序数据,即使服务器停止,我也需要您?

我在互联网上搜索,我发现了很多解决方案,例如使用 infinispan 的数据库或将数据存储到文件中,例如使用 (filecacheStore、jdbccachestore、casassandraCachedatastore),但我不知道哪个是最好的解决方案!

非常感谢您的回复。

【问题讨论】:

    标签: caching cluster-computing infinispan infinispan-8


    【解决方案1】:

    有多种选择,但没有一种最适合所有用例;这就是为什么有选择。你对你的应用需求没有说太多。

    1) 使用持久缓存存储(single file store 可能是 最简单的 选项)。这是和 OOTB 解决方案。

    2) 在关闭之前从您的应用中获取并保存所有数据(使用streams API 进行迭代),并在启动后上传它们。这不会在运行时增加任何开销,但需要您自己处理该过程。

    3) 使用节点集群并始终保持一些节点的数据正常。但是,无论如何,备份(通过 1)或 2)可能是可取的。

    【讨论】:

    • 非常感谢您的回复。但我还有其他问题:) 如果我使用第一个解决方案,即存储到文件中来保存我的数据: • 我什么时候需要保存我的缓存数据?就在服务器关闭之前?或者以某种频率,例如我每 1 百万次保存到文件中?因为当服务器崩溃而不是正常停止时,我害怕丢失我的数据。
    • 第二个命题:好吧,我觉得这很容易,但是当我将数据保存到一个变量中时,服务器停止时这个变量不会被初始化?因为我的变量的内容将保留在内存中。以及如何上传内容?
    • 对于第三种解决方案:我认为这是一个很好的解决方案,但不方便的是我们应该为此购买一台服务器!对于这种情况,您如何看待 Redis?再次感谢
    • 当使用持久缓存存储时,它会在每次写入时更新(直写策略)或在之后很快异步更新(后写)。你不需要自己解决这个问题。
    • '变量'仅在大多数编程语言中是内存中的。第二个建议是,您应该将它们加载到您的应用程序中并将它们存储在某个地方(持久地),将数据写入文件或您喜欢的数据库。
    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2014-05-05
    • 2021-12-19
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多