分布式互斥体

Var*_*run 5 cloud distributed-computing

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

Mic*_*ick 3

您的意思是您想自己实现一些东西,例如控制每个脚本的锁的单个服务器?

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

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

分布式锁服务

进行机器间锁定有哪些好方法?