2013-08-30 67 views
2

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

回答

2

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

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

一些常用的方法列在回答这些在这里的问题 - 这些问题是有点老,但我认为仍然具有现实意义:

Distributed Lock Service

What are some good ways to do intermachine locking?