2011-10-05 49 views
8

从作业主的主页上,他们提到使用多个作业服务器运行,所以如果作业服务器死亡,客户端可以选择新的作业服务器。鉴于下面的声明和图表,似乎作业服务器不能相互通信。HA作业服务器的最佳做法

我们的问题是在作业服务器中排队的那些作业发生了什么事?对这些服务器具有高可用性以确保作业在故障中不会中断的最佳做法是什么?

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

enter image description here

Source

回答

2

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

然而,当作业服务器出现故障时,没有这样做的自动方式,所以如果作业服务器和数据存储都出现故障(服务器本地运行的服务器停止运行),则任务将一直处于故障状态,直到恢复为止线上。

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

我不确定将这些功能添加到gearmand以及是否真的需要它,但只需简单的“添加任务,完成任务,完成任务” - 服务器之间的通知不应太复杂。

相关问题