2010-12-11 92 views
3

類似於google analytics從跟蹤事件的javascript發送信標的方式,收集信標數據並以最快的時間返回客戶端的最有效方法是什麼?什麼是存儲分析信標的最有效方式?

例如,如果我有服務器到服務器信標調用,我想盡可能快地在客戶端服務器上進行該調用。

PHP到平面文件? PHP到本地隊列? Java服務器記錄到一個隊列並一直保持遠程隊列的連接? 定製C++服務器?

這將是每秒1000個請求的數量級。

回答

1

有2個方面。

1)應儘快完成客戶端的信標調用。這意味着傳入的HTTP請求應該響應200 OK並儘快退出,所以它可能不應該寫入實際的數據。它應該將其交給後臺的另一個進程,通過後臺shell執行或使用像Gearman這樣的隊列/作業機制。

2)數據寫入本身,如果在後臺線程中完成,遠離客戶的注意力,則有更多的時間奢侈。對於現代硬件調優的數據庫,每秒1000次寫入數據應該沒問題,因爲行鎖定在同一瞬間沒有被過多選擇。或許,這對於即時數據存儲的key-value store來說可能是一個很好的使用場景。然後,一個單獨的分析/報告過程可以查詢所有存儲數據的離線鍵值存儲,處理它,並最終將其複製到數據庫中。

相關問題