我们的云中有数百台服务器。有一个脚本可以随时由这些服务器中的任何一个调用。我必须确保在任何给定时间只有一台服务器在运行该脚本。当一台服务器锁定脚本,而另一台服务器试图执行时,只需写入日志文件并退出即可。可以有多个这样的脚本,每个脚本都有一个单独的互斥锁。这意味着我想要一个能够容纳多个服务器、多个脚本的解决方案。我正在寻找一个非常简单的解决方案。请向我指出任何可用的工具或建议我的流行方式来实现这一点。
发布于 2013-09-04 06:10:25
你的意思是你想自己实现一些东西,比如一个服务器来控制每个脚本的锁?
你的所有其他服务器都必须向它请求“许可”才能运行脚本,然后在它们完成时通知它,可能还需要一些超时检查机制。你需要考虑一些高可用性机制,以确保你的“锁控制器”服务器不会成为整个系统的单一故障点。此外,您可能希望检查是否需要将请求排队,而不仅仅是现有的-即使现在不是一个要求,如果它很可能成为一个要求,那么从一开始就设计它可能会更容易。
在这些问题的答案中列出了一些常见的方法-这些问题有点老了,但我认为仍然是相关的:
https://stackoverflow.com/questions/18526843
复制相似问题