乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      海爾電商峰值系統(tǒng)架構(gòu)設(shè)計

       ellesmere 2016-01-14


      導(dǎo)語

      本文重點介紹了海爾電商平臺的架構(gòu)方案,也用不少篇幅闡述面臨的場景和挑戰(zhàn),以及在架構(gòu)方案決策過程中的關(guān)注點。其實作為一個優(yōu)秀的電商平臺,提供極致的用戶體驗、讓技術(shù)最大化地創(chuàng)造價值,才是架構(gòu)的終極目標(biāo)。



      多數(shù)電商平臺都會經(jīng)歷相似的過程,流量和業(yè)績每年以幾倍至十幾倍的速度增長,每年都要接受幾次大規(guī)模、全方位的系統(tǒng)檢閱,例如雙11、周年慶等購物狂歡節(jié),期間流量和訂單可能是日常的十幾倍甚至幾十倍,產(chǎn)生的峰值對平臺形成極其強烈的沖擊,對電商平臺的架構(gòu)帶來巨大的考驗。因此,對電商平臺的規(guī)劃和架構(gòu)工作不僅要高瞻遠(yuǎn)矚,而且要細(xì)致入微,否則將導(dǎo)致平臺無法滿足高速增長的業(yè)務(wù)發(fā)展,細(xì)微處的失誤也可能造成嚴(yán)重后果,不僅影響業(yè)務(wù)指標(biāo)的實現(xiàn),還可能導(dǎo)致對系統(tǒng)進(jìn)行重新架構(gòu),勞時費力又傷錢。

      從2012年開始,海爾進(jìn)入了網(wǎng)絡(luò)化發(fā)展階段,企業(yè)平臺化、用戶個性化和員工創(chuàng)客化的“三化”做法為電商的蓬勃發(fā)展提供了很好的土壤,也是海爾在面對互聯(lián)網(wǎng)轉(zhuǎn)型時的一個重點。海爾電商平臺在發(fā)展過程中也同樣經(jīng)歷了上述的問題。下面就拋磚引玉,為大家分享海爾電商平臺應(yīng)對電商峰值的架構(gòu)設(shè)計經(jīng)驗。

      站在巨人肩膀上的SOA架構(gòu)

      隨著電商業(yè)務(wù)開展和業(yè)績增長,系統(tǒng)結(jié)構(gòu)和邏輯變得越來越復(fù)雜。為應(yīng)對業(yè)務(wù)規(guī)模和復(fù)雜性的增長,需要將系統(tǒng)按照細(xì)分專業(yè)領(lǐng)域拆分;為應(yīng)對流量和交易的增長,需要將網(wǎng)站進(jìn)行大量子站拆分。這種狀況下,SOA在保持清晰的系統(tǒng)結(jié)構(gòu)和良好的邏輯組織方面提供了有力保障,為業(yè)務(wù)優(yōu)化調(diào)整及新業(yè)務(wù)的開展帶來巨大收益。

      通過服務(wù)封裝和嚴(yán)格分離,為電商平臺實現(xiàn)高伸縮性打下堅實基礎(chǔ)。實現(xiàn)高伸縮性的主要工作集中在服務(wù)內(nèi)部,對客戶端影響的評估和改造工作也變得非常清晰。這將大大降低了實現(xiàn)高伸縮性的難度、工作量和實施周期。

      Dubbo是阿里提供的一個優(yōu)秀的開源服務(wù)框架,在高并發(fā)情況下具有優(yōu)秀的性能表現(xiàn),海爾電商的SOA架構(gòu)全面基于Dubbo服務(wù)框架。關(guān)于Dubbo框架的詳細(xì)介紹可以參考GitHub上的Dubbo項目文檔。下面對Dubbo框架工作機制進(jìn)行簡單介紹。

      如圖1所示,每個服務(wù)提供者啟動時都會注冊到注冊中心,并且通過長連接與注冊中心保持心跳檢測。這樣注冊中心就擁有一份完整、可用的服務(wù)提供者清單,某個服務(wù)提供者下線或由于故障中斷,注冊中心都能感知到并從清單中刪除這個提供者。消費者啟動時從注冊中心獲得服務(wù)提供者清單,并與提供者建立長連接,后續(xù)直接調(diào)用服務(wù)提供者,不再經(jīng)過注冊中心,避免注冊中心成為瓶頸。每個消費者同樣與注冊中心保持長連接,這樣有新的提供者注冊或者某個提供者下線,都由注冊中心通知到每個消費者。消費者在調(diào)用服務(wù)提供者時支持各種負(fù)載均衡和故障容錯策略。監(jiān)控中心則負(fù)責(zé)運行狀態(tài)統(tǒng)計,例如每分鐘的調(diào)用次數(shù)和平均耗時等。


      圖1 Dubbo服務(wù)部署架構(gòu)示意圖

      Dubbo框架不僅實現(xiàn)了高性能、高可用性,而且使用方便,擴(kuò)展性非常好。海爾電商所有服務(wù)都基于Dubbo框架開發(fā),圖2是系統(tǒng)整體SOA架構(gòu)情況。


      圖2 海爾電商SOA架構(gòu)示意圖

      魚與熊掌兼得的產(chǎn)品服務(wù)架構(gòu)

      面臨的挑戰(zhàn)

      產(chǎn)品的檢索和展示在電商平臺中具有舉足輕重的地位,貫穿用戶瀏覽、購物整個過程,以及訂單交付全流程。產(chǎn)品服務(wù)需要為整個平臺提供數(shù)據(jù)請求和檢索服務(wù),而各品類的產(chǎn)品差異性非常大,這給產(chǎn)品服務(wù)設(shè)計帶來了巨大的挑戰(zhàn)。


      • 負(fù)載權(quán)重高。電商平臺中幾乎每一個前臺頁面都與產(chǎn)品展示和檢索相關(guān),產(chǎn)品服務(wù)的負(fù)載在整個平臺中占比非常高,對產(chǎn)品服務(wù)的請求量可能達(dá)到整站流量的幾倍、幾十倍。在電商活動高峰期間,核心系統(tǒng)中首當(dāng)其沖的便是產(chǎn)品服務(wù)。因此,產(chǎn)品服務(wù)的設(shè)計必須滿足高可用性,并且實現(xiàn)良好的性能和高伸縮性。

      • 產(chǎn)品差異性大。不同品類的產(chǎn)品具有不同維度的屬性和規(guī)格參數(shù),產(chǎn)品結(jié)構(gòu)的設(shè)計必須具備足夠的通用性和靈活性,才能良好地滿足電商平臺多品類運營的要求,以及在平臺、品類擴(kuò)展時可以提供快速的響應(yīng)支持。

      • 全方位檢索、排序。讓用戶方便快捷地在大量產(chǎn)品中找到自己滿意的產(chǎn)品,是電商平臺用戶體驗和信息架構(gòu)中非常關(guān)鍵的一點。除了關(guān)鍵詞搜索、按類目檢索瀏覽之外,還需要提供按常用屬性進(jìn)行檢索。在深入優(yōu)化用戶體驗時,可能會提出更復(fù)雜的檢索處理邏輯,例如組合屬性檢索,自動根據(jù)檢索結(jié)果反過濾掉無結(jié)果的類目和屬性,展示符合各個屬性條件的商品個數(shù),以及實時地結(jié)合大數(shù)據(jù)分析結(jié)果添加更多自動化、智能化的策略等。


      將頁面或者部分頁面的靜態(tài)化是一種非常有效的優(yōu)化方式,可以極大地降低對后臺服務(wù)和數(shù)據(jù)的請求。但靜態(tài)化帶來的最大弊端就是服務(wù)端喪失了控制力,使得一些深入的自動化、智能化策略難以應(yīng)用。因此,我們希望通過提升服務(wù)端的性能和伸縮性,來避免靜態(tài)化的方案。

      性能和伸縮性是電商平臺的關(guān)鍵指標(biāo)。為了保障系統(tǒng)性能和伸縮性,不少時候我們需要犧牲或者完全拒絕某些功能,或者降低系統(tǒng)的靈活性和擴(kuò)展性等。在產(chǎn)品服務(wù)架構(gòu)設(shè)計階段,我們努力思考和研究著一種可以魚和熊掌兼得的解決方案。

      解決方案

      如圖3所示,在數(shù)據(jù)庫層允許復(fù)雜的產(chǎn)品存儲結(jié)構(gòu)設(shè)計,以細(xì)粒度、深度優(yōu)化的關(guān)系模型充分實現(xiàn)產(chǎn)品數(shù)據(jù)模型的通用性、可擴(kuò)展性。在數(shù)據(jù)模型設(shè)計時完全不用關(guān)心客戶端檢索查找的復(fù)雜性和性能問題。


      圖3 產(chǎn)品服務(wù)邏輯架構(gòu)示意圖

      產(chǎn)品查詢引擎將復(fù)雜的數(shù)據(jù)存儲模型封裝成一個簡單的邏輯模型。這個邏輯模型實現(xiàn)的效果,完全等同于產(chǎn)品的所有屬性都存儲在同一張數(shù)據(jù)庫表中,邏輯模型的每個屬性對應(yīng)數(shù)據(jù)庫表中的一個字段。在這個邏輯模型的基礎(chǔ)上實現(xiàn)了一個簡潔的DSL,供客戶端進(jìn)行檢索查詢??蛻舳斯ぷ髟谶壿嬆P秃虳SL之上,檢索查詢簡單、靈活,同樣完全不用關(guān)心產(chǎn)品數(shù)據(jù)存儲模型的復(fù)雜性和性能問題。

      產(chǎn)品查詢語言DSL

      產(chǎn)品查詢語言DSL的語法類似SQL中的where條件語法,任何一個開發(fā)人員都很容易掌握??蛻舳藢SL表達(dá)式傳給服務(wù)端,即可得到滿足條件的產(chǎn)品列表及相關(guān)屬性數(shù)據(jù)(圖4)。


      圖4 查詢語言DSL工作原理

      DSL還支持中文語法,更方便使用,尤其對于業(yè)務(wù)人員進(jìn)行復(fù)雜的后臺檢索查詢,或者為前臺頁面及欄位設(shè)置產(chǎn)品展示的過濾條件等情況。


      產(chǎn)品查詢引擎

      圖5描述了查詢引擎的核心組件及關(guān)鍵的執(zhí)行流、數(shù)據(jù)流。編譯器基于Antlr開發(fā),職責(zé)是將DSL表達(dá)式編譯為語法樹,并完成一系列編譯優(yōu)化操作。執(zhí)行引擎使用語法樹逐個對產(chǎn)品進(jìn)行匹配,得到符合條件的產(chǎn)品列表。智能排序引擎基于產(chǎn)品綜合競爭力評估模型,為結(jié)果集進(jìn)行排序,實現(xiàn)最大化提升轉(zhuǎn)換率的目的。結(jié)果構(gòu)造器則根據(jù)客戶端在調(diào)用服務(wù)時指定的要求,將客戶端所需屬性加載到結(jié)果集中。


      圖5 查詢引擎工作機制

      在服務(wù)啟動時將產(chǎn)品數(shù)據(jù)緩存到內(nèi)存中,通過訂閱MQ消息隊列,在數(shù)據(jù)發(fā)生變化時刷新有變化的數(shù)據(jù)。

      產(chǎn)品服務(wù)架構(gòu)

      產(chǎn)品服務(wù)分不同集群進(jìn)行部署,面向Web應(yīng)用和其他服務(wù)的集群在運行期間幾乎不會產(chǎn)生數(shù)據(jù)庫請求,因此不管網(wǎng)站訪問量和交易量多高,數(shù)據(jù)庫都不會產(chǎn)生壓力瓶頸。在系統(tǒng)峰值期間,只需為Web和服務(wù)添加服務(wù)器即可,實現(xiàn)了高伸縮目標(biāo)。

      效果


      • 性能:最高峰值2.6億次/天,平均耗時60毫秒/次,后續(xù)對編譯器和執(zhí)行引擎進(jìn)行優(yōu)化,性能還有更大的提升空間。

      • 伸縮性:在一定條件下接近線性伸縮,所有使用產(chǎn)品服務(wù)的地方無須出于性能和系統(tǒng)壓力原因額外設(shè)計其他方案,直接調(diào)用產(chǎn)品服務(wù)即可。

      • 通用性:不會因為電商平臺性能和伸縮性要求而受到任何限制,可以像開發(fā)內(nèi)部管理系統(tǒng)PDM一樣設(shè)計產(chǎn)品數(shù)據(jù)模型,并且直接用于其他在線服務(wù)和前臺Web應(yīng)用,盡可能達(dá)到通用靈活的目的。

      • 擴(kuò)展性:通過邏輯模型屏蔽了底層的數(shù)據(jù)模型,將數(shù)據(jù)模型的優(yōu)化、擴(kuò)展工作量以及影響范圍降低到最小限度,提升了電商平臺中產(chǎn)品服務(wù)的可維護(hù)性和擴(kuò)展性。


      以查詢引擎為核心的產(chǎn)品服務(wù)是一個魚與熊掌兼得的架構(gòu)設(shè)計案例,通用性、擴(kuò)展性、伸縮性等在電商平臺中相互制約、矛盾的一組核心架構(gòu)目標(biāo)全部得到滿足。

      ……

      作者劉志斌,海爾電商首席架構(gòu)師


      來源:CSDN

      原文:http://kb.cnblogs.com/page/511435/

      轉(zhuǎn)載文章,向原作者致敬!如有侵權(quán)或不周之處,敬請勞煩聯(lián)系若飛(微信:13511421494)馬上刪除,謝謝!

      ·END·





      架構(gòu)師

      我們都是架構(gòu)師!




        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多