【问题标题】:Hazelcast: set max size, eviction policy on ReplicatedMapHazelcast:在 ReplicatedMap 上设置最大大小、驱逐策略
【发布时间】:2018-06-19 22:08:22
【问题描述】:

这是我第一次使用 Hazelcast。我正在尝试为我的应用程序配置 Hazelcast 集群。对于我们的用例,我需要在我的应用程序中定义多个复制地图。

我已经阅读了 Hazelcast 提供的文档 (http://docs.hazelcast.org/docs/latest-dev/manual/html-single/index.html#replicated-map) 和 ReplicatedMap 的实际实现 (https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/config/ReplicatedMapConfig.java)。

我的问题是,就像 Hazelcast 地图一样,它为我们提供了为分布式地图配置最大大小、驱逐策略等的方法,我们如何为复制地图指定相同的属性?

我没有看到任何方法可以在复制地图中指定最大大小和驱逐策略。我们不能让复制地图尽可能地增长。

我很感激任何让我继续前进的建议。提前致谢。

【问题讨论】:

    标签: configuration hazelcast hazelcast-imap


    【解决方案1】:

    您可以使用该方法以编程方式指定驱逐replicatedMap的条目

    V put(K key,
          V value,
          long ttl,
          TimeUnit timeUnit)
    

    【讨论】:

    • 感谢里亚兹的回复。在插入的每条记录上设置 TTL 将负责及时驱逐条目。但是最大尺寸怎么样!!想象一下这样一种情况,所有记录的 TTL 为 60 分钟,而应用程序在一小时内看到流量激增。从技术上讲,我们最终可能会在缓存中插入如此多的数据,以至于在 60 分钟到期之前堆可能会耗尽空间,从而导致应用程序崩溃。复制地图上应该有一个最大尺寸设置。想法?
    【解决方案2】:

    我也面临同样的问题。每次添加条目时,请尝试在事件侦听器中检查地图大小。

    【讨论】:

    • 你不认为每次添加条目时都检查大小是一种矫枉过正。还有一个问题,如果您对 cacheFull() 的检查返回 true,您将如何执行驱逐策略。
    【解决方案3】:

    复制地图没有明确的最大尺寸政策。任何此类策略都必须由应用程序实施,以确保从所有副本中删除相同的条目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-17
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2020-02-16
      • 1970-01-01
      • 2020-07-10
      相关资源
      最近更新 更多