我的主要目標是通過網絡服務器提供大量的XML文件(每個大於1GB的文件大小爲012bp)。文件可以被認爲是有用的,因爲這些文件會被外部代碼修改,頻率相對很低(每天大約有50k次更新)。文件將以高頻率(> 30 req/sec)請求。哪種技術應該用於服務大量的靜態文件?
我的團隊當前的建議是創建一個專用的Java應用程序來實現HTTP協議,並使用memcached來加快速度,將所有文件數據保存在RDBMS中並擺脫文件系統。
另一方面,我認爲,一個調整的Apache Web服務器或lighttpd應該是足夠的。緩存可以留給OS或Web服務器的高速緩存。如果需要相同的輸出並且僅基於文件名進行查詢,那麼將數據保存在數據庫中毫無意義。不知道memcached如何在這裏工作。在通過外部代碼更新文件時更新外部緩存(memcached)會增加複雜性。
還有其他問題,如果我選擇使用文件是可以存儲在目錄像\ a \ b \ c \ d.xml和通過abcd.xml訪問?或者我應該把所有1bn文件放在單個目錄中(不確定操作系統是否允許)。
這不是一個網站,但是對於封閉網絡中的應用程序API,Cloud/CDN是沒有用的。
我打算使用CentOS + Apache/lighttpd。建議任何替代和最佳可能的解決方案。
This是在這樣的話題上發現的唯一的公共註釋,它也有點老。
50k每天更新是每2秒更新一次。這不是我所稱的「低頻」更新。 – 2010-08-27 18:44:50
但與記錄/文件總數相比,它的頻率相對較低。 – 2010-08-27 19:05:04
沒關係,在這個速度下,任何基於磁盤的東西都會有明顯的效果。把它放在記憶中。 – 2010-08-27 22:34:55