Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 真实世界黑兹卡斯特_Java_Datagrid_Replication_Cluster Computing_Hazelcast - Fatal编程技术网

Java 真实世界黑兹卡斯特

Java 真实世界黑兹卡斯特,java,datagrid,replication,cluster-computing,hazelcast,Java,Datagrid,Replication,Cluster Computing,Hazelcast,是否有人拥有分布式数据网格和执行产品的实际经验?它对你有什么作用?它有一个非常简单的API和功能,对于这样一个简单易用的工具来说,这几乎是正确的。我已经做了一些非常简单的应用程序,到目前为止,它似乎像广告宣传的那样工作。所以我在这里寻找真实世界的“现实检查”。多谢各位 其发展仍存在一些问题, 通常,您可以选择让它使用自己的多播算法或指定自己的ip。我们在局域网环境中试用过,效果非常好。就性能而言,这还不错,但是监控工具工作得不太好,因为它大部分时间都无法更新。如果你能接受当前的问题,那就不择手

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

其发展仍存在一些问题,

通常,您可以选择让它使用自己的多播算法或指定自己的ip。我们在局域网环境中试用过,效果非常好。就性能而言,这还不错,但是监控工具工作得不太好,因为它大部分时间都无法更新。如果你能接受当前的问题,那就不择手段地去做吧。我会谨慎使用它,但它是一个伟大的工作工具

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

如果你有hazelcast的替代品,可以先看看这些。我们有它在运行的生产模式,它仍然是相当多的bug,只是看看开放的问题。
但是,与Spring、Hibernate等的集成非常好,而且安装非常简单:)

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

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

我建议开始使用1.9.4.4版。

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

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


这种产品快把我们吓死了。谨慎、谨慎地使用,并且仅用于简单的服务。

如果我自己的公司和项目算作真实世界,以下是我的经验。我希望尽可能地消除外部(磁盘)存储,以支持无限和持久的“RAM”。首先,它消除了积垢管道,而积垢管道有时占所谓“中间层”的90%。还有其他好处。由于RAM是您的“数据库”,您不需要任何复杂的缓存或HTTP会话复制(这反过来又消除了难看的粘性会话技术)

我相信RAM是未来的发展方向,Hazelcast拥有内存数据库的一切:查询、事务等。因此我编写了一个小型框架对其进行抽象:从持久性存储加载数据(我可以插入任何可以存储blob的东西,最快的是MySQL)。解释为什么我不喜欢Hazelcast的内置持久性支持太长了。这是相当普通和基本的。他们应该移除它。实现您自己的分布式和优化后写和直写并不是火箭科学。花了我一个星期

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


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

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

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


此外,我们使用分布式映射进行缓存,这些缓存在所有节点之间共享。由于Hazelcast中的缩放节点非常简单,并且它使用了所有的CPU核心,因此与redis或任何其他缓存框架相比,它提供了额外的优势。

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

您解决了这个问题吗?您是隔离了问题,还是采用了其他技术?执照费是多少