gpt4 book ai didi

java - 加载并保存 Hazelcast 分布式 map

转载 作者:行者123 更新时间:2023-11-30 02:14:24 50 4
gpt4 key购买 nike

我在我的应用程序中使用 Hazelcast(3.8.1) 作为缓存服务。经过hazelcast documentation后,我对此有一些疑问:

  1. 如果我们使用后写持久化,这是对其本地队列的异步调用,最终我们将其持久化到数据库。我的问题是,如果所有节点都宕机了,那么在这种情况下会出现数据丢失吗?

注意:据我了解,备份节点中还维护着队列的一份副本。但我的情况是,当所有节点都宕机时,我们会丢失数据吗?

  • hazelcast 是否会在停机时保持离线持久性并在启动时加载[对于所有节点]?
  • 感谢回复。

    最佳答案

    1的答案是显而易见的,并且适用于任何具有异步写入的内存系统。如果集群中的所有节点都出现故障,那么是的,有可能会丢失数据,因为您的系统只是最终保持一致。

    对于问题2:Hazelcast 是一种内存缓存,这就是它的主要优点。写入持久存储或从持久存储加载应该是次要的,因为它与缓存系统的一些主要属性(速度,我猜......)冲突。

    话虽如此,它允许您load from and write to persistent storage ,同步(直写)或异步(后写)

    如果您使用 Hazelcast 的主要原因是复制和分区(持久、一致的数据),那么您最好使用 NoSql 数据库,例如 Mongodb。这在很大程度上取决于您的使用模式,因为如果您期望读取次数远多于写入次数,这可能仍然有意义。

    如果,另一方面,您使用它的主要原因是速度,那么您需要的是更好地管理容错,这与您的集群拓扑有更多关系(也许您应该具有跨数据中心复制)比坚持。除非您有很强的一致性或事务要求,否则担心 DC 中“所有节点都死亡”的情况并不常见。

    关于java - 加载并保存 Hazelcast 分布式 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49045859/

    50 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com