问题标签 [hazelcast-imap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Hazelcast 中定义地图
我需要使用 Hazelcast 缓存数据库中用于 Java 项目的一些值。逻辑是检查缓存是否为空,然后调用dao方法填充;否则,从缓存中返回对象。
我对 Hazelcast 完全陌生,对在 xml 文件中配置地图感到困惑:它可以包含在 hazelcast 元素中,在这种情况下可以定义 TTL 和其他有用的属性,也可以在 hazelcast 元素之外定义它,使用对它的引用,在不能使用属性的情况下。
我不明白为什么同一个 XML 元素会出现这种语法差异。我正在处理的项目将使用在另一个项目中创建的 hazelcast 实例 bean,如果我在它之外定义地图,我将无法配置任何东西。
configuration-files - Hazelcast IMap 的 TTL 优先级
根据 Hazelcast 文档,IMap 的 TTL 可以在 xml 地图元素中定义,或者当元素插入地图时,TTL 可以作为数字参数传递,后跟适当的 TimeUnit。
假设地图在 xml 中具有 TTL = 1 天,并且插入其中的元素具有 TTL = 1 小时,那么实际将使用哪个 TTL?
caching - 当集群中的某些节点重新启动时,Hazelcast Map 中的数据丢失
我们一直在使用 Hazelcast 2.6.8 并升级到 3.5。升级的原因是缓存数据出现间歇性问题。但是升级并没有解决问题。
我们试图在 Hazelcast IMap 中缓存 100 个 java 普通对象,我们从外部数据库缓存这些对象。缓存对象通过 Hazelcast 的 ConcurrentMap 在集群中共享。我们有一个由 6 个节点组成的集群,每当我们停止并启动这 6 个节点中的 2 个时,我们会发现一些 java 对象丢失了,它的发生率随着丢失的数量而变化,尽管丢失的数量通常约为 90 个对象在地图上而不是 100。
最初备份计数属性已设置为 3,但由于失败,我们将其增加到 6。
使用的 IMap 方法是用于检索数据的 loadAll 方法。这是我们正在使用的配置,StoreClass 实现了 Hazelcast MapStore:
scala - Hazelcast get 总是返回 null, containsKey 总是返回 false
开始看 Hazelcast ( 3.4.4)。最少的配置。测试:
为什么 null
,为什么false
,为什么只map.getAsync(19).get()
有效?
不过,这:
将打印所有条目。
更新:
在配置中:
java - 使用 SqlPredicate 聚合时出现 Hazelcast 错误
我正在尝试使用 SqlPredicate 谓词在 Hazelcast 中的地图上执行搜索和聚合。当像下面这样搜索时,SqlPredicate 工作得很好:
但是,如果我尝试进行以下聚合,我会得到一个 ClassCastException:
我还尝试创建自己的自定义谓词,它是 SqlPredicate 的包装器:
这会导致 NullPointerException 并且永远不会到达 apply() 方法。
这是 Hazelcast 中的错误吗?或者是否有不能使用 SqlPredicate 来创建供应商的原因?SqlPredicate 实现了 Predicate 接口,所以我认为它应该可以工作。
我目前在搜索时使用 SqlPredicate,所以我希望能够在聚合时使用相同的谓词进行过滤。
scala - Hazelcast 低性能放置 10 000 个项目 6 秒
我有一个例子,我正在测试简单情况下的 hazelcast 性能。
我有 4 核机器,每台 1.2 GHz。
我正在通过 100 个“客户”发送 100 束(实际上只是一个线程中的 lopp)。
所以最后我有一万束票。
表演大概是:
- 如果我使用6 秒
putAsync
- 和10 seconds,如果我使用:
set
我认为这是低性能。
问题: 是吗?我该如何改进它?
所有代码都在那里 - configs。斯卡拉,sbt 项目
更新:
运行时间=测试时间:
- 10 000 - 较新的机器需要 1-2 秒。对于旧机器:10 秒
- 旧机器需要40 000 - 18 秒,新机器需要 4 秒
- 旧机器250 000 - 100 秒,新机器 20-24 秒。
所以“多长时间”=测试时间。
其中:较新的机器是:8 核 2.2 Ghz 较旧的机器:4 核,1,2 Hgz
性能差异很大,具体取决于机器。
java - Hazelcast 服务器心跳延迟,无法与客户端连接
我正在使用 Hazelcast-3.5.1 进行一些测试,它在 1GB 堆上运行良好但是当堆大小增加到 4GB 时,它可以完美运行,直到内存使用量达到 80% 左右,心跳响应延迟迅速增长。(根据日志,例如 - 自上次心跳以来,系统时钟显然从“”跳到“”)
一段时间后,客户端/mancenter 也无法连接服务器 jvm 崩溃。
平台 - Ubuntu 14.04 ( 8GB ) Hazelcast - 3.5.1 Java - 1.7.0_79
服务器日志:
java - Hazelcast,如何通过内部重用 hazelcast 来实现自定义的 MapService?
内置的map只是内存,虽然有MapStore、writThrough、readThrough等,但这些都不能满足需求。我知道我可以从头开始编写 MapService,但是要做的工作太多了。Hazelcast 的内部 MapService 是灵活的。
那么是否有任何指南可以通过重用 hazelcast 的内部实现来实现自定义地图服务?或者只是指出一种方法来做到这一点。
PS:我用的是hz 3.5.1
hazelcast - Hazelcast 地图线程上的更新操作是否安全?
我在我的一个项目中使用 Hazelcast 分布式地图。从多个节点更新密钥时,我是否需要显式使用 Hazelcast 锁,或者是否会由 Hazelcast 隐式处理,因为 Hazelcast 文档说 IMap 是线程安全的。
hazelcast - 将 ttl 设置为 Imap
我有一个IMap
in hazelcast (key, value)
,当时没有ttl
设置imap.put()
。现在触发事件后,我想ttl
在IMap
. 因为,在这个事件发生时,我不想打电话给value = imap.get(key)
then imap.put(key, value, 10, TimeUnit.SECONDS)
。那么如何将 ttl 设置为该特定键?