Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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 使用Spring云实现全局锁_Java_Distributed Computing_Spring Cloud - Fatal编程技术网

Java 使用Spring云实现全局锁

Java 使用Spring云实现全局锁,java,distributed-computing,spring-cloud,Java,Distributed Computing,Spring Cloud,我需要实现一个序列生成服务,以便在n个数据中心(vm或裸机)中运行该服务的多个实例。以下是服务的规则,无论调用哪个服务实例(来自任何数据中心): 所有序列必须是唯一的 不能跳过序列号(即不能在1之前生成2,等等) 如果服务实例(或完整的数据中心)出现故障,其他实例必须能够处理请求并遵守前2条规则 必须能够提供至少200000序列每天 我考虑过很多不同的解决方案,但基本上可以归结为某种分布式服务锁定。SpringCloud声称拥有某种“全局锁”,然而,我没有看到任何真实的描述或实现示例。我愿意

我需要实现一个序列生成服务,以便在n个数据中心(vm或裸机)中运行该服务的多个实例。以下是服务的规则,无论调用哪个服务实例(来自任何数据中心):

  • 所有序列必须是唯一的
  • 不能跳过序列号(即不能在1之前生成2,等等)
  • 如果服务实例(或完整的数据中心)出现故障,其他实例必须能够处理请求并遵守前2条规则
  • 必须能够提供至少200000序列每天
我考虑过很多不同的解决方案,但基本上可以归结为某种分布式服务锁定。SpringCloud声称拥有某种“全局锁”,然而,我没有看到任何真实的描述或实现示例。我愿意接受任何其他解决方案(Apache Zookeeper除外)


我曾想过在RabbitMQ后面运行每个服务,并让每个服务在运行时通知其他服务,但这似乎不是很有效

看看它是一种轻量级分布式锁定机制,可用于在网络上公开服务,如您所述。您仍然需要实现一种增加序列的方法,但是可以使用concur来保存值并实现锁。

我们还没有发布任何内容,但是您可以通过各种技术来实现锁的概念。

谢谢。。。我会查一查