2010-11-22 171 views
30

有没有人有Hazelcast分布式数据网格和执行产品的任何真实世界的经验?它对你有什么作用?它具有令人惊讶的简单API和功能,对于这样一个简单易用的工具来说似乎是非常好的。我已经做了一些非常简单的应用程序,它似乎到目前为止广告的工作。所以我在这里寻找真实的世界'现实检查'。谢谢。RealWorld HazelCast

回答

9

还有仍有一些问题与它的发展,
http://code.google.com/p/hazelcast/issues/list
一般情况下,你可以选择让使用它自己的多播算法或指定自己的IP的。我们已经在局域网环境中尝试过它,它运行得非常好。性能方面,这并不坏,但监控工具并不能很好地工作,因为大部分时间都没有更新。如果你可以忍受当前的问题,那么所有人都应该去做。我会谨慎使用它,但它是一个伟大的工作工具恕我直言。

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

0

如果您有替代品,请先看看这些。我们有它在运行生产模式,它仍然是错误的,只是检查公开的问题。 但是,与Spring,Hibernate等的集成相当不错,安装非常简单:)

11

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

对于每天1.8百万个锁具,我们目前没有发现任何问题。

我推荐使用1.9.4.4版本。

7

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

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

该产品正在消灭我们。谨慎使用,谨慎使用,并且只能用于简单的服务。

+1

你解决了吗?你是否孤立了这个问题,还是转向了另一种技术?你提到的许可费是多少?我想,azelcast的核心是免费的。 – 2012-09-04 18:20:26

+7

旧的[你看到了什么](http://qph.is.quoracdn.net/main-qimg-2776209b9d9d72eef92d0910e8c72e13)笑话 – Crowie 2013-09-11 15:21:09

2

如果我自己的公司和项目算作现实世界,这是我的经验。我希望尽可能接近消除外部(磁盘)存储,以支持无限和持久的“RAM”。对于那些消除CRUD管道的初学者来说,有时会达到所谓的“中间层”的90%。还有其他好处。由于RAM是你的“数据库”,你不需要任何复杂的缓存或HTTP会话复制(这反过来消除了丑陋的粘滞会话技术)。我相信RAM是未来,Hazelcast拥有所有内容数据库:查询,事务处理等。所以我写了一个迷你框架抽象它:从持久存储中加载数据(我可以插入任何东西可以存储BLOB - 最快的结果是MySQL)。解释为什么我不喜欢Hazelcast的内置持久性支持太久了。这是相当通用和基本的。他们应该删除它。实施你自己的分布式和优化的后写和直写不是火箭科学。花了我一个星期。

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

我切换到Mongo的数据库,但离开Hazelcast共享运行时数据 - 即会话。一旦他们提高了查询性能,我会切换回去。

0

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

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

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

0

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