高並發數據采集的架構應用(Redis的應用)


問題的出發點:

      最近公司為了發展需要,要擴大對用戶的信息采集,每個用戶的采集量估計約3W。如果用戶量增加的話,將會大量照成采集量成3W倍的增長,但是又要滿足日常業務需要,特別是報表數據必要在規定的時間內完成。

技術障礙:

     1. 面對用戶量的增長,記錄數3W倍的增長,如何保證這些記錄能夠在比較快的時間內進入存儲介質。

   2. 應對用戶量的增長,如何在規定的時間內完成采集,增加硬件設備處理能力還是使用更多的服務器來處理請求。

     3. 服務器的增長,是否能夠支持現有的擴展能力。

架構實現:

使用到的技術項:

     1. 面向服務開發思維

     2. 隊列服務

     3. 多任務並發執行

     4. 分布式服務管理

     5. Redis的應用

     6. 數據分表(分區)的實現和應用

     7. Redis異步延遲同步到數據庫

架構圖如下:

image

image

具體實現:

     1. 隊列服務可以采用HttpsQs

     2. 多任務並發執行,PHP版可采用ParallelCurl,可控制並發數量

     3. 可使用PHP Redis實現對Redis的操作

     4. 數據表分表或者分區,可自行動手寫個,原理很簡單,需要指導的可以發私密信

 

總結:

      整個方案不是很復雜,在處理大數據方向這塊,基本的原理都是一樣,把不可控的因素要把握住,所以在多任務並發這塊一定要控制到合理的數量,另外Redis緩存也支持分布式集群,增加Redis服務器並不會影響上層代碼的改變,相對來說擴容能力還是相對不錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM