2011-02-24 90 views
1

我正在計劃一個系統,用於從具有負載平衡的服務器羣集提供映像文件。我正在與建築作戰,是否將實際的圖像文件保存爲數據庫或文件系統中的斑點。通過HTTP提供圖像。負載平衡高可用架構

我的問題是,數據庫連接是必需的,因爲用戶需要進行身份驗證。不同的用戶只能訪問自己上傳的朋友的內容和項目。由於無論如何都需要連接,也許圖像可以從那裏檢索?

圖像應該沒有單點故障存儲。顯然,系統應該很快。

對於數據庫方法: 數據庫與我的應用程序的其餘部分是分開的,所以我的應用程序主數據庫不會因所有圖像而變得臃腫。數據庫將很容易擴展,因爲我只需要將更多服務器添加到羣集。問題是,我聽說這可能是一個網站緩慢的系統,數百萬甚至數十億張照片。

對於文件系統: 我將是一個知道如何設計一個系統,其中Web服務器進行負載平衡,其中沒有一個是對整個系統來說太重要了真正的興趣。所有的服務器都應該使用公共存儲,以便他們可以訪問羣集中的相同文件。

您認爲如何?在這種情況下哪個是最好的解決方案?

對於圖像服務集羣,您會推薦什麼樣的整體架構和服務器?注意:此集羣只有提供圖像。應用程序服務器是完全不同的故事。

回答

1

我絕對不會將它們存儲在數據庫中。如果您需要使用PHP進行身份驗證,請儘快執行此操作,並使用X-SendFile將提供給您的Web服務器的實際圖像移交給您。

對於文件系統,聽起來像MogileFS將是一個很好的選擇。我想建議nginx。如果您可以調整您的認證機制以使用existing modules之一,或者爲它編寫自己的模塊,則可以完全省略PHP(已經有MogileFS客戶端模塊)。

+0

感謝您的幫助!我看了一下你提到的那些東西,一定會使用xSendFile!不知道,是否使用lighttpd或nginx的httpd。該MogileFS也似乎很需要我! – FinDev 2011-02-24 15:50:47