HA齿轮工作服务器的最佳实践是什么

时间:2011-10-05 16:38:59

标签: high-availability gearman worker job-scheduling

从gearman的主页,他们提到使用多个作业服务器运行,因此如果作业服务器死亡,客户端可以选择一个新的作业服务器。鉴于下面的语句和图表,似乎作业服务器不会相互通信。

我们的问题是那些在作业服务器中排队的作业会发生什么?为这些服务器提供高可用性以确保作业不会因故障而中断的最佳做法是什么?

  

您可以运行多个作业服务器,并让客户端和工作人员连接到他们配置的第一个可用作业服务器。 这样,如果一个作业服务器死机,客户端和工作人员会自动故障转移到另一个作业服务器。您可能不希望运行太多作业服务器,但有两个或三个是冗余的好主意

enter image description here

Source

1 个答案:

答案 0 :(得分:2)

据我所知,目前还没有正确的方法来处理这个问题,但只要您使用永久队列运行两个作业服务器(使用MySQL或其他数据存储区 - 只是不要为两者使用相同的实际队列)服务器),您可以简单地重新启动作业服务器,它将从数据库加载其队列。这将允许将所有排队的任务提交给可用的工作人员,即使服务器已经死亡。

然而,当作业服务器出现故障时,没有自动执行此操作的方法,因此如果作业服务器和数据存储区都关闭(本地运行的服务器都会关闭)将使任务处于不稳定状态,直到它重新联机

永久队列仅在启动时读取(并在提交和完成任务时插入/删除)。

我不确定将这些功能添加到gearmand所需的复杂性以及它是否真的需要,但是简单的“任务添加,任务分发,任务完成” - 服务器之间的通知应该不会太复杂而无法处理。

相关问题