2013-04-07 34 views
1

超過100次點擊我需要的解決方案/建議從專家的意見了......Windows Azure的表Stoarge和驗證,每秒

  1. 我們正在建立一個API解決方案,用戶將發送給我們沿着一個唯一代碼用戶名和密碼來獲取驗證碼等信息...

挑戰,我們正面臨着..

  1. 如何處理超過100請求/塞科第二?我們目前使用mysql,但是擴展到這個級別,數據存儲成本很高。你認爲Windows Azure Table Storage是做大量選擇驗證的正確選擇,然後做更新以扣除用戶信用,有興趣從我們這裏抽取信息.....
  2. 我們想記錄大量數據。我認爲Windows Azure存儲將很便宜,但如何進行聚合和分析?你知道任何案例研究/方式導入數據回到MySQL說每日/每小時分區?任何可用於將Windows Azure存儲表數據導入到MySQL數據庫的工具或庫?
  3. 如果有人試圖向我們的服務器發出大量濫用請求,如何處理這種情況?試圖每秒執行很多無效的驗證,只會導致我們的API遇到很多問題?如何控制?

將認識到處理大量請求的任何經驗。我們使用PHP和MYSQL currently.s

回答

2

#1:Windows Azure的表存儲被設計用來處理向上的2,000個事務/秒,每分區在整個存儲帳戶中20,000個交易次數/秒,最大10Gbps入站,15Gbps出站帶寬(有關完整詳細信息,請參見this MSDN article)。你應該沒有問題處理100 tx /秒。並且不要忘記實體組事務,您可以在單個事務中寫入多個實體(在同一個分區內)。

對於#2(甚至#1):分區對於實現最高性能非常重要。另外請記住,如果您需要執行復雜的搜索(比如說,在幾個不同的屬性上),那麼最終可能會出現您正在執行分區掃描的情況(因爲您擁有的唯一索引是分區鍵+行鍵)。如果您計劃進行分析,最好只讀取這些數據,根據需要進行彙總(或根據需要進行非規範化處理),並寫入更適合分析/深入/繪圖/等的數據庫。

我會說#3應該作爲一個單獨的問題發佈,因爲它落入拒絕服務類型的問題,這似乎不相關。

+0

非常感謝您的詳細回覆..您能否指導任何示例或文檔如何聚合Azure表存儲數據並寫入MySQL數據庫?我們可以做好分區啓動,掃描每小時分區....開發人員如何掃描每個分區並在PHP程序中進行彙總的任何好材料?例如循環遍歷每1000個結果集,然後將這些變量寫入關係數據庫?什麼是彙總數據和回寫關係數據的最有效方式? – 2013-04-08 06:40:43

+0

@EhteshamHaque - 我認爲聚合和寫入mysql不在這裏,因爲它是非常開放的。這是一個ETL問題,基於您希望執行的分析類型,針對您的應用程序的領域非常具體。 – 2013-04-08 10:24:10

+0

我有興趣知道批量提取數據的最佳方法嗎?我們可以提取分區並將其保存到文件?我們也可以刪除一個查詢中的完整分區嗎? 我們的產量有一天會很高,所以我想實施最佳的提取策略。任何經過驗證的例子,任何一位天藍色的客戶實施了這個?任何已經證明的圖書館/參考? 當然,我不想做逐行處理! – 2013-04-08 19:25:35