我需要实现序列生成服务,以便在n个数据中心(虚拟机或裸机)中运行此服务的多个实例。以下是服务的规则,无论调用哪个服务实例(来自任何数据中心):
我考虑过很多不同的解决方案,但基本上它归结为某种分布式服务锁定。 Spring云声称有某种“全局锁定”,但是,我没有看到任何真实的描述或实现示例。我对任何其他解决方案(Apache Zookeeper除外)持开放态度。
我玩弄了在RabbitMQ后面运行每个服务的想法,让每个服务在运行时通知其他服务,但这似乎不是很有效。
答案 0 :(得分:2)
我们尚未发布任何内容,但您可以关注https://github.com/spring-cloud/spring-cloud-cluster的进展情况,其中包含使用各种技术实施锁定的概念。
答案 1 :(得分:1)
看看Consul它是一个轻量级的分布式锁定机制,可用于在您描述的网络中公开服务。您仍然需要实现增加序列的方法,但可以使用Consul来保存值并实现锁定。