1號店電商峰值與流式計算

2022-06-01 13:30:11 字數 1721 閱讀 8705

概述:  京東618、 1號店711,還有全民購物狂歡節雙11,電商**的浪潮此起彼伏。然而,在買家和賣家歡呼雀躍的同時,電商平台正在經歷著非常嚴峻的考驗。面對一天之內猶如洪水般的網購流量,哪怕出現幾分鐘的閃失,都可能造成眾多筆訂單的損失,以及無法挽回的銷售收入。

從這三個角度出發,hadoop框架更適合於大資料批量處理。畢竟,它是先儲存再訪問,屬於「一次寫入多次讀取」的業務型別。然而電商行業的很多業務,強調訪問處理的實時性,包括電商搜尋引擎、基於使用者購買行為的實時商品推薦和針對**流量的監控及反作弊等功能。這些業務要求處理行為達到秒級甚至毫秒級的時延,從而促進了以storm為代表的流式計算系統的推廣和應用。

1號店結合自己的業務需求,在力求降低成本的前提下,最終採納storm計算框架來實現自己的分布式流計算平台

tracker是1號店獨自開發的資料記錄方案,它結合flume構成**的資料採集模組,能在保證日誌記錄效率和穩定性的同時,更好地支援橫向擴充套件,以應對日益龐大的資料量。我們採用kafka作為前端訊息資料緩衝,盡可能降低資料丟失率,同時能夠靈活滿足不同業務對訊息處理並行性和有序性的偏好要求。storm應用的計算結果,按照各自業務需求選擇持久化儲存或丟棄。

為了更進一步保證流式計算系統的穩定性,光有容錯處理是不夠的,我們還必須想方設法減少計算平台被過重負載壓垮的風險。linux容器技術為我們的需求提供了極大便利。它以cgroup核心功能為基礎,可以支援對cpu、記憶體、塊裝置讀寫和網路流量等資源的隔離限制,而且此類限制可以細化到程序級別(cgroup是以程序組為基本工作單位的)。通過採用linux容器技術,可以避免某些業務程序侵占過多系統資源,從而導致節點系統響應緩慢甚至完全癱瘓。

很遺憾,storm自身還沒有支援cgroup資源隔離功能。目前的storm on yarn還是個概念性實現,因為yarn對storm的資源隔離,僅針對整個storm集群所占用的資源,以實現和hadoop批量計算框架在同一集群上的共存。而我們的客觀需求是希望能對storm平台上topology一級進行資源限制,對應到每個計算節點上,就是一種程序級別的資源隔離需求。最終的解決辦法是,我們獨立設計自己的cgroup資源管理框架,來實現對storm topology的資源隔離限制

更簡單的使用者體驗

1. 使用者不需掌握cgroup的複雜細節(層級、子系統、組概念及相關作業系統和檔案系統知識)。

2. 僅需掌握三種操作:

建立/刪除某一型別的cgroup,目前支援cpu、memory和cpuset三種型別;

分配程序到指定的cgroup。

3. 如上操作可以通過重新設計實現的客戶端指令(ycgclient)完成。

4. 使用者僅需在storm ui上對storm topology指定優先順序(該處優先順序定義為程序所在的程序組可獲取資源的大小)。

5. 由守護程序(ycgmanager)自動管理各計算節點的程序級優先順序

自動化方案降低手動管理成本

storm topology的優先順序資訊儲存在zookeeper集群中。

資源管理框架可以自適應異構機器結點的動態新增。

便於集群管理(機器配置資訊會自動儲存在zookeeper中,包括邏輯cpu個數、記憶體和交換分割槽大小)。

總結:1號店作為一家成立時間較短的中小規模電商,業務增長十分迅速。我們意識到自己的實時計算平台在今後會有更大的壓力和考驗。在保證現有系統正常執行的同時,我們也在積極蒐集業務部門的各種反饋,基於目前的平台和技術做進一步的調研和二次開發。如何提高系統峰值處理時的效能和可靠性,我們依然任重而道遠。

電商新系統如何應對峰值

唯品會11.11 峰值系統應對實踐 為了保證系統在高併發 大流量訪問下工作,並且使系統有較強的擴充套件性,我們的設計主要從以下幾個方面展開 在系統流量達到極限時的情況,有自動熔斷機制。熔斷器是在服務或者周邊環境 如網路 出現了異常後主動斷開客戶端後續的使用,從而避免服務崩潰無法恢復。但是在後續時間熔...

電商(1)之走進電商

近年來,中國的電子商務快速發展,交易額連創新高,電子商務在各領域的應用不斷拓展和深化 相關服務業蓬勃發展 支撐體系不斷健全完善 創新的動力和能力 不斷增強。電子商務正在與實體經濟深度融合,進入規模性發展階段,對經濟社會生活的影響不斷增大,正成為我國經濟發展的新引擎。中國電子商務研究中心資料顯示,截止...

挑戰空中加油 1號店B2C電商系統演進之路

適當放棄一致性 在一些實時性要求不高的場合,我們適當放棄一致性要求。這樣就可以充分利用多種手段來提高系統吞吐量,例如頁面快取 分布式資料快取 資料庫讀寫分離 查詢資料搜尋索引化。系統共用元件service化 隨著系統的分拆,各子系統間的重複 越來越多,增加了很多不必要的維護成本。為提高 的復用,降低...