问题标签 [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.

0 投票
1 回答
254 浏览

java - 了解 HazelCast 中的放大

我在理解分布式执行器服务方面遇到问题。我正在尝试运行此处提到的示例

[链接] https://github.com/hazelcast/hazelcast-code-samples/tree/master/distributed-executor/scale-out

我对横向扩展的假设是,当我在不同的机器上运行 master 和 slave 时,应该在两台机器上执行,即负载应该在两台机器上平衡。但我看不到从控制台上发生的任何事情。主控制台正在执行所有 1000 个 EchoTask。我对分布式执行器服务的理解是否错误?有人可以帮助我理解这一点

0 投票
1 回答
455 浏览

deserialization - 没有为命名空间注册 DataSerializerFactory:0 - hazelcast 3.5.5

我正在使用 hazelcast- 3.5.5 和 hazelcast-client - 3.5.5。根据文档,它已在 3.4.x 中修复,但我在 3.5.5 中仍然面临这个问题。

这是我的代码:

下面是我的 hazelcast.xml

以下是我尝试连接到两台机器时遇到的错误

有人可以帮我解决这个问题吗,我花了很多时间在这上面。提前致谢。

0 投票
1 回答
843 浏览

java - 在与谓词键相同的节点上获取 IMap 条目 [Hazelcast]

我正在使用 Hazelcast 3.6 IMap 来分布式存储大量数据(我已经在 1B 项上进行了测试)。我想通过键加入 2 个 IMap 实例,但似乎没有任何内置功能可以做到这一点。@PatritionAware因此,如果键相等,我将使用将这些映射的条目存储在同一节点中,然后Set<K> localKeySet();在类的每个成员上使用第一个映射。之后,我尝试从同一节点上的第二个映射中获取值,以避免通过网络传输谓词键。但似乎getAll(Set<K> keys)不在同一个节点上这样做。有人已经有同样的问题了吗?是否可以根据 Hazelcast 功能解决它?

请参阅下面的代码示例

0 投票
1 回答
1815 浏览

hazelcast - 由于大量“IsStillRunningService”对象,Hazelcast 集群成员内存不足

我们有一个在 3.5 版本上使用 Hazelcast IExecutor Service 和 IMap 的系统。我们最近遇到了 Hazelcast 集群成员在生产中出现内存不足的情况,一个接一个,最后所有节点都因 OOM 而崩溃。
在进行因果分析时,我们发现下面的日志条目数以千计,并且日志文件大小呈指数增长。此外,存在日志的存储空间也已用完。

我知道,集群成员将继续制作心跳以确保所有成员都还活着,我相信默认值为 10 秒。现在的问题是,如果任何成员变得无响应或休止状态,其余成员将继续进行正在执行的调用。查看堆转储后,发现>73% 的堆充满了“IsStillRunningService”对象。

问题:

  1. 如何知道究竟出了什么问题?
  2. 存储空间用完只是巧合还是可能有任何关联?我们怀疑一个可能导致另一个,因为它在一周内发生了两次。

Hazelcast XML 配置:

StackTrace
LinkedBlockingQueue 包含 IsStillRunningService 对象

0 投票
1 回答
168 浏览

hazelcast - Hazelcast 事件一致性

我正在为我的用例使用 hazelcast 本地侦听器。我已阅读文档并了解它使用队列将事件推送给侦听器。

宕机的节点队列中的事件会发生什么?如果配置了副本,这些会被忽略还是会在队列中并路由到新节点?请说清楚。

有没有办法通过某种回调来确认消息的成功接收?所以这个事件永远不会丢失。

0 投票
1 回答
691 浏览

java - 奇怪的 Hazelcat IMap#put() 行为

我的基于 Hazelcast 的程序可以在两种模式下工作:提交者和工人。

提交者通过某个键将一些 POJO 放到分布式映射中,例如:hazelcastInstance.getMap(MAP_NAME).put(key, value);

Worker 有一个无限循环(Thread.sleep(1000L);内部超时),它必须处理地图中的实体。现在我只是在这个循环中打印地图大小。

现在问题来了。我启动工人应用程序。然后我同时启动四个提交者(每个提交者都向地图添加一个条目并终止它的工作)。但在所有提交者应用程序完成后,工作应用程序会打印任意大小:有时它检测到只添加了一个条目,有时是两个,有时是三个(实际上它从未看到所有四个条目)。

这个简单的流程有什么问题?我在 Hazelcast 文档中读到该put()方法是同步的,因此它保证在它返回后,条目被放置到分布式映射并被复制。但在我的实验中似乎并非如此。

UPD(代码)

提交人:

工人:

我注释掉了“处理”部分本身,因为现在我只是想获得地图的一致状态。上面的代码每次打印不同的结果,例如:“4, 3, 1, 1, 1, 1, 1...”(所以它甚至可以看到4个提交的任务,但随后它们...消失了) .

UPD(日志)

工人:

提交者 1:

提交者 2:

提交者 3:

提交者 4:

0 投票
1 回答
1341 浏览

java - Hazelcast 3.6.2 Eviction Map 在 3.6.2 中不能使用 Spring 和 max-size-policy 作为 PER_NODE

我想让 Map eviction max-size="4" PER_NODE 在 Hazelcast 3.6.2 spring 上工作。下面是我在春天定义的地图。

我还检查了是否确实为定义的地图设置了此驱逐策略,并且确实如此。秒后驱逐也适用于该地图,但覆盖最大尺寸的驱逐则无效。我正在使用 hazelcast 3.6.2。我还尝试过删除内存格式、更改驱逐策略等。

预期的行为是,当地图超过项目数量(超过 4 个)时,将开始驱逐。实际行为是驱逐永远不会开始。

欢迎任何帮助。

0 投票
1 回答
1142 浏览

java - 用 Hazelcast 填充地图后,从地图中获取一个值

我是 Hazelcast 的新手,在我看来,我正在努力解决一个非常简单的问题,但无法解决它。

我有这种情况,我有 2 个 Web 服务,在一个服务器(第一个 API)中,我必须使用第二个 API 从另一台服务器获取将在 5 秒后填充的值,并且我在两台服务器之间只有一个 referenceId识别/获取/填充值。换句话说,当使用 ID 调用我的第一个 Api 时,它将返回推送到具有该 ID 的第二个 Api 的内容。

此图更好地显示了我想通过连接第一个和第二个 API 来解决的问题: 在此处输入图像描述

因此,我使用了 IMap 并像这样执行“获取”和“放置”:

另一方面,另一台服务器将在最多 5 秒后放入数据,如下所示:

这样做的问题是 map.get 总是返回 null ,因为此时该值不存在,但是如果我添加sleep(5)一切正常。

map.get(referenceId)我的问题是,在其他服务器使用该特定 ID 填充地图之前,我该怎么做才能被阻止?还有比使用 IMap 更好的选择吗?

0 投票
1 回答
1975 浏览

hazelcast - Hazelcast IMap - 如何清除 loadAll(true) 上的所有元素

我的缓存将包含可能不在同步数据库中的元素。

例如,在某些用例中,我在 IMap 中使用了 set/putTransient,这样元素只会在缓存中。

IMap.loadAll(true) 不会从缓存中清除那些未同步的元素。

请指教...

更新:我的重新加载命令

0 投票
1 回答
1555 浏览

hazelcast - Karaf / Maven 缺少要求 osgi.wiring.package; (osgi.wiring.package=javax.annotation.meta)

我通过以下链接在 karaf 4.0.3 中运行一个简单的 hazelcast 应用程序,

https://darylmathison.com/2014/04/01/beginners-guide-to-hazelcast-part-1/

我能够完全编译代码,但是在启动捆绑包时,我收到以下错误,例如,

我得到了这个缺失的要求 osgi.wiring.package; (osgi.wiring.package=javax.annotation.meta)一直。我也尝试在 pom.xml 文件中添加以下行,

但没有太大帮助。请帮我解决这个缺失的需求 osgi.wiring.package; (osgi.wiring.package=javax.annotation.meta) 启动包时出错。