2011-10-05 39 views
8

從作業主的主頁上,他們提到使用多個作業服務器運行,所以如果作業服務器死亡,客戶端可以選擇新的作業服務器。鑑於下面的聲明和圖表,似乎作業服務器不能相互通信。HA作業服務器的最佳做法

我們的問題是在作業服務器中排隊的那些作業發生了什麼事?對這些服務器具有高可用性以確保作業在故障中不會中斷的最佳做法是什麼?

您可以運行多個作業服務器,並讓客戶端和工作端連接到它們配置的第一個可用作業服務器。 這樣,如果一個作業服務器死亡,客戶端和工作人員會自動故障轉移到另一個作業服務器。你可能不想運行太多的作業服務器,但有兩到三個是冗餘的好主意。

enter image description here

Source

回答

2

據我所知,是目前處理這種不正確的方法,但只要您運行永久隊列(使用MySQL或者其他兩個工作服務器數據存儲 - 只是不要爲兩臺服務器使用相同的實際隊列),只需重新啓動作業服務器,它就會從數據庫加載其隊列。這將允許所有排隊的任務提交給可用的工作人員,即使服務器已經死亡。

然而,當作業服務器出現故障時,沒有這樣做的自動方式,所以如果作業服務器和數據存儲都出現故障(服務器本地運行的服務器停止運行),則任務將一直處於故障狀態,直到恢復爲止線上。

永久隊列僅在啓動時讀取(並且在任務被提交併完成時插入/刪除)。

我不確定將這些功能添加到gearmand以及是否真的需要它,但只需簡單的「添加任務,完成任務,完成任務」 - 服務器之間的通知不應太複雜。

相關問題