Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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_Multithreading_Locking_Hazelcast - Fatal编程技术网

Java 对于客户端/服务器拓扑,锁仍然是故障安全的吗?

Java 对于客户端/服务器拓扑,锁仍然是故障安全的吗?,java,multithreading,locking,hazelcast,Java,Multithreading,Locking,Hazelcast,我知道Hazelcast锁对于嵌入式拓扑是故障安全的。如hazelcast文件所述 (): …当一个成员离开集群时,该成员获取的所有锁 将移除固定构件,以便立即关闭这些锁 可供实时成员使用 我们可以在嵌入式拓扑中测试这种行为。当一个实例关闭时,所有相关的锁都会按预期成功释放 相同的行为是否适用于客户机/服务器拓扑?也就是说,如果获取锁的客户机宕机,这些由死客户机获取的锁是否在集群中释放 关于是,客户端只是一个代理,将命令重定向到集群节点。正是因为这个原因,他们的行为将是相同的。一般来说,建议使用

我知道Hazelcast锁对于嵌入式拓扑是故障安全的。如hazelcast文件所述 ():

…当一个成员离开集群时,该成员获取的所有锁 将移除固定构件,以便立即关闭这些锁 可供实时成员使用

我们可以在嵌入式拓扑中测试这种行为。当一个实例关闭时,所有相关的锁都会按预期成功释放

相同的行为是否适用于客户机/服务器拓扑?也就是说,如果获取锁的客户机宕机,这些由死客户机获取的锁是否在集群中释放


关于

是,客户端只是一个代理,将命令重定向到集群节点。正是因为这个原因,他们的行为将是相同的。一般来说,建议使用客户机-服务器体系结构:)

所以我想这适用于所有其他行为?由于我们针对com.hazelcast.core.HazelcastInstance接口编写代码,并且嵌入式模式(hazelcast.newHazelcastInstance())和客户端模式(HazelcastClient.newHazelcastClient())的api都是相同的,所以我们可以预期确切的行为,对吗?为什么推荐客户机-服务器体系结构?:)是的,这是真的,除了(不幸的)客户端上的一些异常与节点上的略有不同。这应该在Hazelcast 4中修复(在给定时间),但为了向后兼容而保留。无论如何,这些东西是罕见的出于多种原因,我们推荐客户机服务器、优化gc的更好选项、存储和业务逻辑之间的清晰分离、独立的可扩展性等等。。。有白皮书:)你好,诺克塔利斯。非常感谢您的详细解释。你能提供白皮书的链接吗?还有最后一个问题:在客户机/服务器模式下为多个应用程序提供服务的最佳集群拓扑是什么?实际上,我是在一个单独的问题中问这个问题的:最佳考虑“最佳集群拓扑”是什么意思?你可能会发现网络研讨会提供的信息最丰富:(我想现在找不到白皮书):)谢谢。不过,对这个问题的回答也不错:)