1. 程式人生 > >電商專案解決高併發的問題的策略淺談

電商專案解決高併發的問題的策略淺談

前言:

       本文乃是文章作者在實際電商專案開發參與過程中關於本專案中解決高併發方案的一些思路總結,由於本人水平有限,不足之處,望請留言指正!

       在專案中解決高併發並非解決其中的某一個環節或點,而是全方位的,系統性的從客戶發起請求,請求處理,服務呼叫,資料訪問層層優化,解決高併發。 

1.系統硬體

    提升伺服器效能。

    1.1 增加記憶體容量;

    1.2 更換硬碟;

    1.3 升級處理器;

2.系統軟體(架構方向)

    2.1.前端請求到伺服器-------反向代理伺服器(如nginx),

       2.1.1 反向代理 

      攔截無效的客戶請求、惡意請求等,可參考:nginx網路伺服器上如何阻止特定使用者代理(UA)http://linux.cn/article-5487-1.html

       2.1.2 訪問靜態資源,做快取 

       反向代理伺服器不但可以攔截指定的請求,還能夠通過配置緩衝功能可以快取真實Web伺服器上的某些靜態資源,減輕真實Web伺服器的負載壓力,可以在反向代理的伺服器上快取某些靜態資源,這樣的話在反向代理伺服器上存在的資源就不用去web伺服器上獲取,以減輕web伺服器的壓力。

       在該環節中我們採用了freemarker技術,實現網頁靜態化,進而實現上述功能,來提高併發。另外,前端請求我們可以採用get請求的方法,實現一些靜態資源快取在瀏覽器端,避免了使用者重複重新整理造成的惡意訪問。

       NGINX反向代理快取配置https://blog.csdn.net/lmy_1/article/details/52791275

       2.1.2 負載均衡

       網站前期使用了nginx代理一臺後端伺服器,隨著網站流量的增多,一臺後端伺服器無法滿足需求的時候,需要配置伺服器叢集,這時就需要負載均衡配置。負載均衡配置配置策略預設是輪詢,輪詢策略要求叢集中的各伺服器效能要一致,同木桶原理;對於效能不一致的,可以配置權重策略。

      負載均衡策略轉至https://blog.csdn.net/poisx/article/details/78985010

    2.2  呼叫服務---------dubbox分散式服務架構以及訊息中介軟體MQ (activeMQ)

    2.3  資料訪問----------redis做快取以及資料庫分庫 

小結:水平有限,有待進一步學習後,進一步完善。