问题标签 [hazelcast]

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 回答
4296 浏览

persistence - Hazelcast 文件持久化(MapStore 实现)

我正在使用 Hazelcast 进行集群数据分发。我使用 MapStore 和 MapLoader 接口阅读了有关数据持久性的文档。我需要实现这些接口并将类名写入 hazelcast.xml 文件。

是否有任何使用 hazelcast 实现文件持久性接口的示例?有谁知道我可以下载和使用的任何源代码或 jar 文件?

谢谢

0 投票
1 回答
1675 浏览

spring - 从 Hazelcast 中的 Map 返回克隆的对象

我在 Hazelcast 2.1 和 Spring 3.1 中使用 Spring @Cacheable 注释。

是否可以从映射返回缓存值的克隆/副本,而不是从Hazelcast.getMap()引用 ?

即我想要一个像 EhCache 中的 copyOnRead 功能。请参阅EhCache 文档

0 投票
1 回答
5449 浏览

spring - 在客户端中使用 MapLoader 获取 Hazelcast 分布式地图

我正在评估 Hazelcast 作为我正在开发的应用程序的分布式数据网格解决方案。Hazelcast 设置在分布式集群上,我的应用程序使用 Spring 以这种方式定义 Hazelcast 客户端:

在我的 Hazelcast 节点上,hazelcast.xml我在文件中设置了一张地图,其中包含所需的所有配置。假设这张地图被称为myMap. 使用 Hazelcast webapp 进行监控(mancenter)时,我可以看到此地图设置正确。

我现在必须在应用程序端配置映射以注入到我的 bean 中。如果我做类似的事情

我将这张地图注入到包含获取逻辑的 bean 中,我没有遇到任何问题。

但是,我还编写了一个实现MapLoader接口的类,以处理缓存中丢失的数据。我现在的问题是我不知道如何将它Maploader与我定义的缓存联系起来。如果我尝试类似

我收到一个 XML 解析错误,因为似乎当hz:map用作顶级元素(而不是在 ahz:config中,例如)时,您无法指定内部元素。这让我觉得你需要定义一个hz:config元素。但是,如果您可以hz:config为客户定义一个元素,则从文档中不是很清楚。hz:config对我来说,如果您希望您的应用程序成为集群的一部分,您似乎需要使用。但是,我不确定我的应用程序应该成为集群的一部分在逻辑上是否正确 - 它基本上是数据网格的客户端。

您对如何配置我的应用程序以实现我想要的行为有任何想法吗?

谢谢!

0 投票
1 回答
594 浏览

playframework - 有没有人用过hazelcast和play framework 2.0

有没有人使用 Hazelcast(最好是 2.1)和游戏框架 2.0/2.1(不是 1.2+)?我在尝试使用上述版本时遇到异常(我无法为 hazelcast 运行 play install - 给出了“无效的密钥错误”作为响应)。我的项目引用了 hazelcast jar 文件 - 我也尝试在 dependencies.yml 文件中添加对 Hazelcast 的引用,但无济于事。

除了回到 1.2 之外的任何建议都将受到欢迎。如果没有别的办法,我就回玩1.2。

0 投票
1 回答
1788 浏览

java - Hazelcast 查询可以与对象方法一起使用吗?

我在文档中找不到这个。

如果我在 hazelcast 缓存中有一个复杂的对象:

我可不可以做:

我知道@Cachable注释在可能的情况下使用SpEL。是否有可能以某种方式以编程方式进行?

谢谢,

0 投票
1 回答
205 浏览

caching - 具有嵌入式和分布式缓存/数据网格的数据感知负载平衡

对不起,我是负载平衡的初学者。


在分布式环境中,我们越来越倾向于将处理(map/reduce)发送到数据,以便结果在本地计算然后聚合。

我想做的事情适用于分区/分布式数据,而不是复制。遵循同样的原则,我希望能够在缓存用户数据的服务器上发送用户请求。


当使用嵌入式缓存或数据网格来获得低响应时间时,当数据集很大时,我们倾向于避免复制并使用分布式/分区缓存。

分区算法通常是基于散列的,并且允许有副本来处理服务器故障。

最后,用户数据通常托管在 3 个服务器(1 个主副本和 2 个副本)上

在本地缓存未命中时,缓存通常能够搜索其他缓存对等点上的条目。这工作正常,但需要网络访问。我想要一个负载平衡策略来避免这种无用的网络调用。


我想知道的是:是否有可能拥有一个知道缓存分区机制的负载均衡器,以便在我们需要数据时它总是转发到具有本地副本的网络服务器之一?

例如,我有一个请求 www.mywebsite.com/user=387 负载均衡器将检查 387 userId 并知道该用户存储在服务器 1、6 和 12 中。因此他可以轮询其中一个或其他战略。


如果没有通用解决方案,是否有允许定义自定义路由策略的开源或商业、软件或硬件负载平衡器?

请求中提取多少数据会减慢负载均衡器的速度?与例如循环策略相比,提取 url 参数(例如在我的 user=387 示例中)并遵循一些规则转到正确的网络服务器的成本是多少?

在缓存供应商之上是否有一个抽象库,以便我们可以轻松检索分区数据并将其提供给负载均衡器?

谢谢!

0 投票
2 回答
340 浏览

java - 分布式文本聚类框架

我需要一个分布式文本聚类框架来支持包含一组完整文档的算法。像carrot2 http://project.carrot2.org/这样的应用程序在内存计算中处理一组文档,因此非常耗时且非常高效。如果像 lingo、STC、knn 等这种文本聚类算法可以在分布式环境中运行,它们会更快。是否有任何框架使用像 hazelcast http://www.hazelcast.com/这样的开源工具,或者是否有任何更快速和性能效率更高的特定方法。

0 投票
2 回答
7311 浏览

java - Hazelcast 计划作业(Quartz 支持?)

我知道这对兵马俑是不公平的,但是有没有人尝试使用 Hazelcast 来在集群环境中使用预定的作业?

我可以想象的最简单的实现是以下架构:

  1. 全局 Hazelcast 锁,用于确保只有一台服务器启动 Quartz 配置。
  2. 将实际任务作为 DistributedTask 运行。(这可以稍后完成,目前繁重的计划任务需要处理触发 DistributedTask)
  3. 一旦持有锁的服务器关闭,另一台服务器就会获得锁。

我相信这对于已经拥有 Hazelcast 的人来说将是一个很大的优势,因为他们不需要通过一直打开兵马俑的东西来解决整个开发环境的麻烦。

目前,我编写了最简单的解决方案,即只让一个节点负责执行 Quartz 触发器。由于我只使用类似 Cron 的触发器,因此如果我负责为繁重的触发器任务创建 DistributedTasks,它可能是一个可接受的解决方案。

这是实现它的我的 org.springframework.scheduling.quartz.SchedulerFactoryBean 扩展:

请让我知道我是否遗漏了一些重要的东西,如果可以做到这一点。

我已将这两个文件添加到 github。这是 RAMJobStore 扩展:

https://github.com/mufumbo/quartz-hazelcast/blob/master/src/main/java/com/mufumbo/server/scheduler/hazelcast/HazelcastRAMJobStore.java

这是 Spring SchedulerFactoryBean 扩展:

https://github.com/mufumbo/quartz-hazelcast/blob/master/src/main/java/com/mufumbo/server/scheduler/hazelcast/SchedulerFactoryBean.java

0 投票
2 回答
1107 浏览

caching - 在 Glassfish 上复制 ehcache

恐怕我有一些关于 ehcache 的非常基本的问题。我想在没有任何重要基础设施的集群 Glassfish 上使用缓存机制。据我所知,使用带有 ehcache 的分布式缓存意味着我必须使用 terracotta 服务器阵列,不是吗?

我在缓存方面没有那么丰富的经验,所以我可以在集群 glassfish 上使用 ehcache,我只需将一些 JAR 放入 Glassfish 的类路径或将 WAR 或其他东西部署到 Glassfish 上,就是这样?我是否必须使用外部缓存服务器?

ehcache 中的复制缓存不需要兵马俑服务器阵列,是吗?

我想在商店中存储一个 Java Map 对象,该对象将经常更改。据我所知,在这种情况下,复制缓存不是最佳选择。Hazelcast 分布式缓存需要任何外部缓存服务器吗?非常感谢您提前提供的帮助!祝您有愉快的一天,专家们!

0 投票
2 回答
6247 浏览

java - JGroups、兵马俑和榛树

试图围绕这 3 个项目展开思考,它们似乎都处理了尝试集群时出现的略有不同的问题。但是他们的所有文档都是为已经“知道”的开发人员编写的,对于像我这样的新手来说很难理解。

  • 他们每个人都试图解决的具体问题是什么,这些问题彼此有何不同?
  • 它们各自的集群与集群应用服务器(如 JBoss 或 GlassFish 的内置集群功能)有何不同?
  • 这些框架解决的问题是否不同,足以保证它们在同一个项目中的使用?或者他们是彼此的竞争对手,因此对相同/相似的问题有不同的解决方案?

提前感谢您对这些奇怪但难以捉摸的框架的任何洞察!