2013-01-14 58 views
1

我有簡單的REST API寫在CakePHP(在Apache上的PHP)。基本上它只有一個端點,比如說/api/something/?format=json。調用此端點不會讀取數據庫中的任何內容,但會在內部讀取並解析某個外部網站,並以json格式將分析後的數據返回給用戶。問題是從外部網頁獲取和解析數據可能會持續很長時間,因此我需要一些負載平衡機制,它將在幾臺服務器之間分配API調用。如何在簡單的REST API中實現負載平衡?

我從來沒有做過任何負載平衡,所以我什至不知道在哪裏尋找信息 - 我正在尋找最簡單的解決方案。

+1

頁面是否經常更新,或者可以緩存結果嗎?但如果你設置負載平衡總是有:http://haproxy.1wt.eu/ –

+0

每個API調用將解析不同的頁面,所以它不能被緩存 – user606521

+0

HaProxy似乎我在找 – user606521

回答

2

它是一個必須直接獲取的資源嗎?因爲您可以將處理的數據緩存一段時間。

如果它必須是活的,以分佈式方式進行操作可能無法解決您的問題。 (除非你取回一個數據集,這是非常大的)

+0

是的,它必須被提取實際上,每個API調用都會解析不同的頁面 – user606521

+0

我不認爲你可以以更快的速度完成這個任務。 (假設你已經使用http://php.net/manual/en/function.file-get-contents.php) –

+0

你是什麼意思?如果100個peaople會調用api,那麼一臺服務器必須下載100個頁面 - 當它將分佈在4個服務器中時,每個服務器將不得不下載25個頁面...... – user606521