分布式互斥

时间:2013-08-30 07:00:22

标签: cloud distributed-computing

我们的云中有数百台服务器。有一个脚本可以由任何这些服务器随时调用。我必须确保在任何给定时间只有一台服务器正在运行该脚本。当一个服务器获取了脚本锁定,而另一个服务器尝试执行时,只需写入日志文件并退出。可以有多个这样的脚本,每个脚本都有一个单独的互斥锁。这意味着我想要一个容纳多个服务器多个脚本的解决方案。我正在寻找一个非常简单的解决方案。请指出任何可用的工具或建议我采用流行的方式来实现这一点。

1 个答案:

答案 0 :(得分:2)

你的意思是你想自己实现一些控制每个脚本锁的服务器吗?

所有其他服务器都必须要求它“运行”脚本的“权限”,然后在完成后通知它,可能还有一些超时检查机制。您需要考虑使用一些高可用性机制来确保您的“锁定控制器”服务器不会成为整个系统的单点故障。此外,您可能想要检查是否需要对请求进行排队而不是仅仅存在 - 即使现在不是必需的,如果它可能变为一个,从一开始就可能更容易设计它。

这些问题的答案中列出了一些常见的方法 - 问题有点陈旧,但我认为仍然相关:

Distributed Lock Service

What are some good ways to do intermachine locking?