2012-07-25 63 views
1

我目前正在將我們的網頁視頻轉換部分(有點像用戶上傳視頻的YouTube以及我們將其轉換爲flv/mp4)分離到不同的服務器。我已經在同一臺機器上運行了gearman系統。所以當用戶將視頻文件上傳到服務器A時,由同一服務器A上的齒輪工工作人員拾取。發送文件給gearman工作者

現在我將工作人員移動到服務器B.因此,服務器B上的工作人員需要訪問服務器上的上載文件A.目前我使用SCP將文件從A複製到B然後處理它。這種方法的工作原理,但我覺得應該有一個更乾淨的方式做到這一點,但我還沒有找到關於發送文件(或大型文件)給齒輪工人的任何信息。你會如何解決這個問題?

客戶端最好將視頻文件作爲命令的一部分發送以啓動後臺作業,因此我不必擔心文件實際來自工作人員內部。這樣我就可以添加更多的轉換服務器,而不用麻煩。

我爲我的網頁和工作人員使用PHP(Gearman extension)。

+0

A和B之間可能共享NFS/SSHFS? – 2012-07-25 09:16:37

+1

我也想過,但我更喜歡不同的解決方案。但不要張貼作爲回答您的評論,如果沒有更好的出現。如果沒有更好的來了,我會接受它:) – 2012-07-25 09:18:53

+2

,我會寫一個詳細的解答:) – 2012-07-25 09:20:33

回答

5

正如評論中所建議的那樣,擁有一個共享的FS是實現這一目標的(通常的)方法,並簡單地通過齒輪工的工作要求。 Gearman不太適合傳遞大量數據,因爲它必須將所有工作信息保存在內存中。它從來沒有被設計用於處理大文件的傳輸和分發。因爲MogileFS最初也是在Danga開發的,所以根本就沒有必要在Gearman中加入文件傳輸和處理(這是一件好事,有相當多的技術可以比Gearman做的更好地解決這個問題)。

當視頻到達時,我們使用NFS處理分佈式工作人員,編碼器將編碼後的視頻放回到完成後公開的NFS共享中。還沒有一個嚴重的問題,NFS是穩定的,它的問題是衆所周知的,已經解決了你會看到的負載類型。