什么是HA Gearman作业服务器的最佳实践?

12

从gearman的主页上可以看到,他们提到可以使用多个作业服务器运行,以便如果一个作业服务器死亡,客户端可以选择另一个作业服务器。根据下面的陈述和图表,似乎作业服务器之间不进行通信。

我们的问题是那些排队在死亡的作业服务器中的作业会发生什么情况?有哪些最佳实践来确保这些服务器具有高可用性,以确保作业不会在故障时中断?

您可以运行多个作业服务器,并使客户端和工作者连接到它们配置的第一个可用作业服务器。 这样,如果一个作业服务器死亡,客户端和工作者会自动切换到另一个作业服务器。 您可能不想运行太多作业服务器,但是拥有两个或三个作业服务器是冗余的好主意。

enter image description here

来源

1个回答

3
据我所知,目前还没有适当的方法来处理这个问题,但只要您使用永久队列(使用MySQL或其他数据存储方式-只需不要为两个服务器使用相同的实际队列),您可以简单地重新启动作业服务器,它会从数据库中加载其队列。这将允许所有排队的任务在服务器死机后提交给可用的工作者。
然而,当作业服务器关闭时,没有自动完成此操作的方法,因此如果作业服务器和数据存储同时关闭(在本地运行两个服务器的情况下),则任务将处于未决状态,直到恢复在线状态。
永久队列只在启动时读取(并随着提交和完成任务的增加/删除而进行修改)。
我不确定向gearmand添加此功能所需的复杂性以及是否真正需要,但是在服务器之间进行“任务添加、任务分配、任务完成”之间的简单通知应该不太复杂。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接