4

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

4

1 回答 1

3

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

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

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

分布式锁服务

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

于 2013-09-03T22:10:24.860 回答