30

有人对Hazelcast分布式数据网格和执行产品有任何实际经验吗?它对你有什么作用?它有一个非常简单的 API 和功能,对于这样一个简单易用的工具来说似乎几乎是真的。我已经做了一些非常简单的应用程序,到目前为止它似乎可以像宣传的那样工作。所以在这里我正在寻找现实世界的“现实检查”。谢谢你。

4

7 回答 7

11

从 1.8+ 版本开始,我们一直在生产中使用它,主要使用分布式锁定功能。它工作得很好,我们发现了一些解决方法/错误,但这些修复相对较快。

每天有 180 万个锁,到目前为止,我们没有发现任何问题。

我建议开始使用 1.9.4.4 版本。

于 2012-01-19T20:48:47.913 回答
9

它的开发仍然存在一些问题,
http://code.google.com/p/hazelcast/issues/list
通常,您可以选择让它使用自己的多播算法或指定您自己的 ip。我们已经在 LAN 环境中进行了尝试,效果很好。性能方面还不错,但是监控工具并不能很好地工作,因为它大部分时间都无法更新。如果您可以忍受当前的问题,那么请务必去做。我会谨慎使用它,但恕我直言,它是一个很好的工作工具。

更新:我们已经使用 Hazelcast 几个月了,它运行良好。这些设置相对容易设置,并且随着新的更新,足够全面,可以自定义甚至很小的事情,比如读/写操作中允许的线程数。

于 2010-12-21T22:35:51.487 回答
7

我们在生产中使用 Hazelcast(现在是 1.9.4.6)与复杂的事务服务集成。添加它是为了缓解即时的数据库吞吐量问题。我们发现我们经常不得不停止它,至少一个小时内关闭所有交易服务。我们以超级客户端模式运行客户端,因为它是唯一可以远程满足我们性能要求的选项(比本地客户端快约 4 倍。)不幸的是,停止超级客户端节点会导致脑裂问题并导致网格丢失记录,从而强制完成关闭服务。近一年来,我们一直在努力让这个产品为我们工作,甚至还花钱请了 2 名 hazelcast 代表来帮忙。他们无法提出解决方案,但能够让我们知道我们可能做错了。

在这一点上,我们每年要支付超过 6 位数的许可费用,我们目前使用的资源是保持网格活跃并满足我们的性能需求的大约 5 倍,而不是使用集群和优化的数据库堆栈。这对我们来说绝对是错误的决定。

这个产品正在扼杀我们。谨慎、谨慎地使用,并且仅用于简单的服务。

于 2012-02-10T17:13:28.910 回答
2

如果我自己的公司和项目算作现实世界,这就是我的经验。我想尽可能地消除外部(磁盘)存储,以支持无限和持久的“RAM”。对于消除 CRUD 管道的初学者来说,CRUD 管道有时占所谓的“中间层”的 90%。还有其他好处。由于 RAM 是您的“数据库”,因此您不需要任何复杂的缓存或 HTTP 会话复制(这反过来又消除了丑陋的粘性会话技术)。

我相信 RAM 是未来,而 Hazelcast 具备成为内存数据库的一切:查询、事务等。所以我写了一个迷你框架来抽象它:从持久存储中加载数据(我可以插入任何可以存储 BLOB 的东西- 最快的竟然是 MySQL)。解释为什么我不喜欢 Hazelcast 的内置持久性支持太长了。这是相当通用和基本的。他们应该删除它。实现自己的分布式和优化后写和直写并不是火箭科学。花了我一个星期。

在我开始性能测试之前一切都很好。查询很慢——在我做了所有优化之后:索引、便携式序列化、显式比较器等。对索引字段的简单“大于”查询在 60K 的 1K 记录(映射条目)上需要 30 秒。我相信 Hazelcast 团队已尽其所能。尽管我不想这么说,与普通数据库使用的超级优化 C++ 代码相比,Java 集合仍然很慢。有一些开源 Java 项目可以解决这个问题。但是此时查询持久性是不可接受的。它应该在单个本地实例上是即时的。毕竟这是一种内存技术。

我将数据库切换到 Mongo,但将 Hazelcast 用于共享运行时数据 - 即会话。一旦他们提高了查询性能,我就会切换回来。

于 2015-06-15T05:21:40.353 回答
0

如果你有 hazelcast 的替代品,可以先看看这些。我们有它在运行生产模式,它仍然有很多错误,只需检查未解决的问题。但是,与 Spring、Hibernate 等的集成非常好,而且设置非常简单 :)

于 2011-10-30T23:40:23.640 回答
0

我们在电子商务应用程序中使用 Hazelcast 以确保我们的库存是一致的。

我们广泛使用分布式锁定来确保以原子方式修改库存的 SKU 项目,因为我们的 Web 应用程序集群中有数百个节点同时对这些项目进行操作。

此外,我们使用分布式地图进行缓存,这些地图在所有节点之间共享。由于 Hazelcast 中的扩展节点非常简单,并且它利用了所有的 CPU 内核,因此它比 redis 或任何其他缓存框架更具优势。

于 2017-07-12T11:46:40.557 回答
0

我们在电子商务应用程序中使用了过去 3 年的 Hazelcast,以确保可用性(供需)是一致的、原子的、可用的和可扩展的。我们使用 IMap(分布式映射)来缓存数据,并使用 Entry Processor 进行读写操作,以便在 IMap 上进行快速的内存操作,而无需担心锁。

于 2017-08-24T17:35:32.327 回答