隨著業務的高速發展, 產品的uv/pv 已經有了數量級的提公升,作為訪問量的聚集地之一的商品詳情頁逐步的感受到了壓力,特別是活動和大促期間,這樣的感覺越發明顯。所以除了服務化改造本身,今年我們的重點改造目標之一,就是提公升商品詳情頁的效能和體驗。
被動式快取先行
為了盡快解決頁面訪問的效能問題,第一步往往會選用最快最有效的方式,我們也不例外,所以在第乙個版本中,我們的改造方案如下:
商品詳情頁的所有資料,提前載入到redis集群中,設定了乙個資料過期時間,比如5分鐘或者10分鐘,過期後,再從資料庫同步最新狀態資料。
通過被動式快取改造後,商詳頁的效能提公升是顯著的,但缺點也是明顯的,一些動態資料,例如「購買人數」,「剩餘份額」,「投資記錄」等,更新的頻率顯得缺乏及時性。所以,商品快取雖然有了效能提公升,但是還遠沒有達到我們的要求,於是我們就立刻做了第二步。
主動式快取 + 被動式快取
採用主動式快取的出發點在於將訪問量,購買量高的產品的資料更新做得更及時,對於不怎麼訪問或者沒有購買量的商品詳情頁可以延遲更新,通過快取差異化實現既保持比較高的效能,同樣保持使用者資料及時性的目的。
具體的架構方案如下:
更新的步驟如下:
1. 設定乙個統一的被動快取過期時間,比如 1小時。
2. 使用者訪問的時候,商品服務先從redis中將快取資料data取出來輸出給使用者。訂單服務判斷該商品的剩餘份額是否有變化,如果剩餘份額有變化則將當前產品id傳送到訊息佇列。
3. taskmanager從mq中依次獲取需要重新整理的產品id列表,將更新後的最新的訂單資料寫入redis。
4. 快取更新後,下次使用者再次訪問商詳頁,相關資料已更新。
5. 對於冷門產品,最遲每隔1小時後,通過被動快取進行更新。
有了主動式+被動式的快取方案後,效能和資料一致性是解決了,不過考慮到穩定性和商詳頁資料擴充套件性的要求,我們的商品快取還需要將粒度做得更細,於是有了下面的思路。
商品資訊快取架構
我們可以將商詳頁上的資料,根據不同的型別,進行乙個劃分,例如,分成4類:
1、商品基本資訊,標題、擴充套件屬性、特殊屬性、、期限、收益率引數等;
2、專案介紹資訊,受託方、合作機構、專案簡介、風險提示等;
3、銷售資訊,已賣份額、購買人數、購買詳情等;
4、活動情況,所屬活動,活動介紹等。
快取更新的流程:
當某類商品資訊出現更新後,對應的服務會將對應的資訊id放入mq中,非同步通知產品服務,商品資訊出現了更新。
產品服務中的資料整合模組,根據需要更新的資料型別,對資料的格式進行梳理,便於儲存。
將更新後的資料同步到商品服務對應的快取系統中。
前端請求商品服務的時候,就可以拿到更新後的資料。
這個方案的主要目標如下:
產品資料形成自我管理,不依賴於任何其他系統,將各個依賴系統的資料拿過來,按照產品系統的要求儲存起來。
將資料按照不同的型別區分開,減少彼此的相互影響,即便是某一類資料無法正常獲取,不會影響到其他資料。
按照不同的資料型別,可以制定不同的時效性方案進行處理。比方說,「利率」,時效性可以放到最高。「購買人數」,就可以允許一定的延遲。
智慧型水務資訊化系統建設方案
營業抄收系統涵蓋了供水公司營業抄收方面的主要業務,是供水綜合管理系統的核心系統,是企業建立雲平台的基礎系統,他們通過規範的流程管理,形成用水使用者的基礎資料。同時通過雲平台組成應用軟體即服務的應用平台,其中主要包括檔案管理 抄表管理 水表管理 帳務管理 收費管理 票據管理 報表管理等,支援全部供水區...
如何降低BI系統建設的風險
商業智慧型 bi 對商業決策可以產生深遠的影響,但是的乙個日益複雜的環境和來自各行各業的高期望值往往為商業智慧型 bi 的實施帶來了大量的問題 風險和可能的失敗。如何最大程度的降低商業智慧型統建設風險?如何規避內部因素,降低bi系統建設風險 1.前期準備工作要充分 1 充分了解使用者所需。商業智慧型...
移動商城系統建設方案必需解決的三大問題
隨著資訊科技迅速發展,人們的生活逐漸被網際網路的出現所改變,尤其是移動網際網路,越來越多的人通過智慧型手機進行商品以及服務的購買,人們的生活逐漸移動化。不少的企業正是抓住這樣的機會,紛紛開始建設企業的移動 面對這種新興的模式,不少的企業在建設中會有一些問題的出現,夏日葵電商在此為大家介紹移動 系統建...