亚洲熟妇中文字幕欧美,国产 日韩 欧美 视频 制服,日韩av天堂一区二区,国产精品亚洲av三区

  1. <big id="nbhen"><acronym id="nbhen"></acronym></big>

        <source id="nbhen"><track id="nbhen"></track></source>

      1. <b id="nbhen"><acronym id="nbhen"></acronym></b>

        湖北企業(yè)新聞網(wǎng),歡迎您!

        幫助中心 廣告聯(lián)系

        網(wǎng)站關(guān)鍵詞: 湖北企業(yè)新聞網(wǎng)

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐!

        來源:時(shí)間:2020-11-20 13:16:42 閱讀:-

        架構(gòu)總原則:

        大中臺(tái)+小前臺(tái)的架構(gòu)思路

        業(yè)務(wù)中臺(tái)采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD),在其上構(gòu)建業(yè)務(wù)能力SAAS,持續(xù)不斷進(jìn)行迭代演進(jìn)。

        平臺(tái)化定位,進(jìn)行了業(yè)務(wù)隔離設(shè)計(jì),方便一套系統(tǒng)支撐不同玩法的業(yè)務(wù)類型和便于定制化擴(kuò)展。

        前后端分離,通過服務(wù)接入層進(jìn)行路由適配轉(zhuǎn)發(fā)。

        天然的分庫分表,消息解耦和分布式緩存設(shè)計(jì),支持彈性擴(kuò)容,以支持大數(shù)據(jù)高并發(fā)場(chǎng)景。

        系統(tǒng)邏輯架構(gòu)圖:

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        接下來將分別介紹每個(gè)部分。

        電商中臺(tái):

        中臺(tái)部分在邏輯上分成了基礎(chǔ)能力和平臺(tái)產(chǎn)品兩層,這樣做的好處是,基礎(chǔ)能力層聚焦于穩(wěn)定收斂的業(yè)務(wù)模型和基礎(chǔ)服務(wù)本身,不會(huì)隨著業(yè)務(wù)和前臺(tái)產(chǎn)品的調(diào)整發(fā)生變化,可以簡單理解為業(yè)務(wù)模型的DAO。平臺(tái)產(chǎn)品層則專注于通過流程編排類的技術(shù)手段,將基礎(chǔ)能力構(gòu)建成業(yè)務(wù)的解決方案,解決共性和個(gè)性化的問題。我們將以交易的設(shè)計(jì)為例來說明這個(gè)分層理念。通過對(duì)電商交易業(yè)務(wù)的深入分析,

        可以確定幾乎所有的交易都會(huì)涉及下圖中所有的領(lǐng)域(庫存,優(yōu)惠,價(jià)格…),而單看每個(gè)域,玩法都是很少變化的,將這些域的基礎(chǔ)能力完全可以沉淀下來形成原子的基礎(chǔ)能力,通過擴(kuò)展點(diǎn)方式應(yīng)對(duì)將來特殊的場(chǎng)景個(gè)性化擴(kuò)展。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        平臺(tái)產(chǎn)品層為了應(yīng)對(duì)不同的交易場(chǎng)景(一口價(jià),拍賣,貨到付款,預(yù)售…)將原子的基礎(chǔ)能力編排成滿足不同場(chǎng)景的解決方案,以服務(wù)的方式透出出去。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        服務(wù)接入層:

        服務(wù)接入層是連接前臺(tái)產(chǎn)品和中臺(tái)產(chǎn)品層的紐帶, 實(shí)質(zhì)就是之前的web 應(yīng)用,不同的是現(xiàn)在前后端分離后,只包含java 代碼,使用springBoot web。做參數(shù)轉(zhuǎn)換,路由分發(fā),調(diào)用中臺(tái)服務(wù),結(jié)果封裝。這塊需要做好前后端的交互規(guī)范,請(qǐng)求路由映射規(guī)范,web工程目錄結(jié)構(gòu),負(fù)載均衡方案,跨越問題和安全問題,

        后續(xù)會(huì)有專題詳細(xì)介紹這塊。

        公用基礎(chǔ)組件:

        沉淀和抽象出通用獨(dú)立的公共基礎(chǔ)組件,這些組件在服務(wù)本項(xiàng)目,本團(tuán)隊(duì)的同時(shí),可以開源出去服務(wù)更多的人; 抽幾個(gè)非常重要的組件講一下這么做的目的。

        數(shù)據(jù)訪問組件: 抽象封裝分庫分表訪問,讀寫分離,主備切換。

        消息中間件組件:這塊的選擇非常多,就開源的就有activeMQ,RabbitMQ,RocketMQ,Kafka等等, 再加上阿里云,AWS, 騰訊云等提供的和對(duì)應(yīng)的云版本,會(huì)非常多,如果不對(duì)這塊做封裝,對(duì)其上應(yīng)用做透明化處理,后期做這塊的適配調(diào)整就會(huì)非常痛苦,特別是這套系統(tǒng)會(huì)在不同環(huán)境中進(jìn)行部署時(shí)。

        地址庫組件: 統(tǒng)一地理地址相關(guān)的服務(wù),如果是有拓展國際市場(chǎng)的需求,這塊會(huì)顯得的非常重要,不同文化背景的國家,在這塊的差異會(huì)非常大,同時(shí)國內(nèi)也涉及3級(jí),4級(jí)和5級(jí)地址的問題。

        云服務(wù)&設(shè)施容器層

        如果技術(shù)團(tuán)隊(duì)不是非常大,又沒有較強(qiáng)的運(yùn)維技術(shù)人員,建議不要購買物理機(jī)自己搭建環(huán)境,而是直接使用阿里云這些比較成熟的ECS和其他云服務(wù),這樣會(huì)節(jié)省很多時(shí)間成本和一些耗時(shí)的運(yùn)維工作,讓其專注于業(yè)務(wù)產(chǎn)品的研發(fā),同時(shí)使用docker 容器部署應(yīng)用,不僅需要的機(jī)器數(shù)量比較少而且部署非常便捷高效。

        業(yè)務(wù)前臺(tái)產(chǎn)品:

        ios ,android APP , H5 APP ,PC 站點(diǎn),微信支付寶小程序 都是屬于這層,前臺(tái)產(chǎn)品主要是根據(jù)業(yè)務(wù)形態(tài)和產(chǎn)品的定位來進(jìn)行構(gòu)建。對(duì)于電商業(yè)務(wù)來說,主要是指移動(dòng)APP商城,H5商城,PC商城 ,小程序商城。將以小程序?yàn)槔齺碚f明。

        為了適應(yīng)小程序,社交電商這樣的熱點(diǎn),加上有這么優(yōu)秀的一套電商中臺(tái)系統(tǒng),不搞出點(diǎn)有么有樣的電商前臺(tái)產(chǎn)品,不是很沒有道理,為此想破腦袋,我們把電商和送禮結(jié)合了起來,做了“禮尚往來”的小程序,下面是產(chǎn)品的截圖。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        穩(wěn)定和安全保障系統(tǒng)

        對(duì)電商這類在線交易系統(tǒng),流量會(huì)隨著運(yùn)營活動(dòng)的波動(dòng)非常大,特別是到了雙11這類大活動(dòng)的時(shí)候,流量的峰值會(huì)是平時(shí)的幾十~幾百倍,一些接口會(huì)放大的更大;核心系統(tǒng)的系統(tǒng)指標(biāo),流量,接口調(diào)用量和rt, 以及限流和異常的監(jiān)控就顯得非常重要了。在幾年之前,只有BAT 幾個(gè)大的公司有能力在這方面做的不錯(cuò),隨著全民參與的這種大型促銷活動(dòng)推動(dòng)技術(shù)的進(jìn)步,以及開源社區(qū)和一些大廠將類似方案回饋到開源社區(qū),目前一個(gè)小的技術(shù)團(tuán)隊(duì)做好這塊也沒有什么難度了?,F(xiàn)將我們用到的框架做個(gè)簡單的介紹,更多細(xì)節(jié)請(qǐng)參考官方文檔。

        sentinel:是面向分布式服務(wù)架構(gòu)的輕量級(jí)流量控制產(chǎn)品,主要以流量為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度來幫助您保護(hù)服務(wù)的穩(wěn)定性。 該系統(tǒng)已經(jīng)過阿里內(nèi)部雙11多年的驗(yàn)證,穩(wěn)定性和可靠性非常不錯(cuò),已于最近開源。

        dubbokeeper: dubbo的官方監(jiān)控dubbo-monitor-simple 在性能上表現(xiàn)非常不好,經(jīng)??ㄋ溃瑢?duì)比了幾個(gè)成熟的框架后,最終確定使用dubbokeeper. dubbokeeper社區(qū)版dubboadmin,包括了應(yīng)用管理,動(dòng)態(tài)配置,統(tǒng)計(jì)信息,服務(wù)監(jiān)控和zk信息查看功能。

        pinpoint: 現(xiàn)在基于微服務(wù)的架構(gòu),一個(gè)請(qǐng)求從用戶發(fā)起到響應(yīng),中間調(diào)用鏈路非常長,跨越數(shù)十個(gè)系統(tǒng)很正常,并且路徑非常多,要定位一個(gè)比較耗時(shí)的響應(yīng),不利用工具,是非常低效的。Pinpoint這樣的工具就是為處理這個(gè)問題出現(xiàn)的,Pinpoint的優(yōu)點(diǎn)是對(duì)代碼零侵入,運(yùn)用JavaAgent字節(jié)碼增強(qiáng)技術(shù),追蹤每個(gè)請(qǐng)求的完整調(diào)用鏈路。

        Telegraf+ influxDB+ Grafana:主要用來實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的實(shí)時(shí)監(jiān)控方案,如交易額的不正常波動(dòng),訂單量的突然下跌等。Telegraf 是收集數(shù)據(jù)的代理程序,可以根據(jù)業(yè)務(wù)需要添加插件擴(kuò)展服務(wù),收集到的數(shù)據(jù)寫入分布式時(shí)序數(shù)據(jù)庫influxDB,再通過grafana 可視化的展示出來。

        工程結(jié)構(gòu):

        邏輯結(jié)構(gòu)映射到物理的工程結(jié)構(gòu),每個(gè)邏輯單元對(duì)應(yīng)為一個(gè)子工程,如果是用idea 開發(fā),就是一個(gè)model, 當(dāng)然model 里邊會(huì)有子model;至于需要打包構(gòu)建多少個(gè)系統(tǒng)其決定性因素是你團(tuán)隊(duì)的規(guī)模,如果團(tuán)隊(duì)規(guī)模較少,中臺(tái)系統(tǒng)合并到3-4個(gè)左右就足夠了,如果團(tuán)非常大,一個(gè)團(tuán)隊(duì)負(fù)責(zé)一個(gè)業(yè)務(wù)板塊的,并為其構(gòu)建多個(gè)系統(tǒng),也是非常正常的,像較大的電商公司,負(fù)責(zé)商品的就是一個(gè)團(tuán)隊(duì),商品相關(guān)的系統(tǒng)就有數(shù)10個(gè)。以交易為例,可以將交易的系統(tǒng)合并為一個(gè)系統(tǒng),但在工程的組織結(jié)構(gòu)上是對(duì)立的,方便將來的拆分。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        為什么要用業(yè)務(wù)中臺(tái)化思想來架構(gòu)交易系統(tǒng)

        上面介紹了交易業(yè)務(wù)中臺(tái)的設(shè)計(jì)理念,本篇會(huì)詳細(xì)的來說為何要用中臺(tái)的思想來架構(gòu)交易系統(tǒng)。要說明白這個(gè)問題,我們必須回看系統(tǒng)的演化路徑是怎樣隨著業(yè)務(wù)規(guī)模的增長進(jìn)行變化的。

        首先來看初創(chuàng)公司/新業(yè)務(wù)系統(tǒng)是如何演進(jìn)的;以基于云計(jì)算為基礎(chǔ)的架構(gòu)模式,大部分的初創(chuàng)的系統(tǒng)架構(gòu)圖如下

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        對(duì)于一個(gè)業(yè)務(wù)規(guī)模很小,業(yè)務(wù)也比較單一,該架構(gòu)也是最高效的方式,一到兩個(gè)web系統(tǒng),數(shù)個(gè)微服務(wù)業(yè)務(wù)系統(tǒng),一到兩個(gè)前臺(tái)系統(tǒng)。微服務(wù)業(yè)務(wù)系統(tǒng)將會(huì)把會(huì)員,商品,類目,店鋪,交易,庫存,物流這些劃分成不同的模塊/包放在一到幾個(gè)系統(tǒng),這樣做的好處是非常明顯的,每個(gè)人都熟悉所有的代碼,代碼量不大,開發(fā)效率高,這在公司剛起步時(shí),是非常接地氣的和最適合的架構(gòu)。

        隨著公司業(yè)務(wù)規(guī)模和組織的壯大,會(huì)基于上面的架構(gòu),迭代演進(jìn)N次,直到系統(tǒng)不再是制約公司發(fā)展的瓶頸,這期間最重要的架構(gòu)升級(jí)是系統(tǒng)和數(shù)據(jù)庫的垂直拆分,異步消息解耦,分布式事務(wù)機(jī)制,穩(wěn)定性保障。為了快速說明問題,我們將忽略中間演進(jìn)版本,直通基于中臺(tái)的版本。

        在介紹業(yè)務(wù)中臺(tái)模式之前,先來看看中臺(tái)概念的產(chǎn)生背景,中臺(tái)研發(fā)模式最早產(chǎn)生于芬蘭著名游戲公司supercell. Supercell有員工180人,后被騰訊以100億美金估值收購,其鼎峰時(shí)期全球排名top10的游戲,有5個(gè)來自supercell, 其能快速推出高質(zhì)量的游戲,其大中臺(tái)功不可沒。阿里借鑒了supercell的“大中臺(tái),小前臺(tái)”的模式,以解決快速創(chuàng)新試錯(cuò)的前端業(yè)務(wù)和日益沉重的淘寶天貓這些核心系統(tǒng)之間的矛盾,以提升研發(fā)效率和跨團(tuán)隊(duì)合作。

        可以進(jìn)一步的設(shè)想,如果公司業(yè)務(wù)高速發(fā)展,特別是互聯(lián)網(wǎng)的業(yè)務(wù)模式,出現(xiàn)10倍增速的發(fā)展也很正常,這會(huì)面臨業(yè)務(wù)和技術(shù)團(tuán)隊(duì)規(guī)模變大,業(yè)務(wù)也會(huì)越來越復(fù)雜,就以交易為例,最初就是簡單支撐實(shí)物購買場(chǎng)景(消費(fèi)者付款購買,平臺(tái)/商家發(fā)貨),隨著用戶和業(yè)務(wù)的發(fā)展,會(huì)出現(xiàn),虛擬商品交易,團(tuán)購,拼團(tuán),拍賣,秒殺,預(yù)售等等交易業(yè)務(wù)模式。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        最初就是一個(gè)系統(tǒng)單純的支持一個(gè)單一的業(yè)務(wù),到了階段二支持三個(gè)業(yè)務(wù),你還能勉強(qiáng)活著,到了階段三如果還是使用之前的架構(gòu)和開發(fā)模式,你會(huì)陷入泥潭,在階段三必然會(huì)出現(xiàn)以下問題:

        [if !supportLists]1.[endif]業(yè)務(wù)之間的需求相互影響,修改和測(cè)試回歸成本非常高,但還是會(huì)發(fā)生意想不到的線上問題。

        [if !supportLists]2.[endif]由于支撐的需求越來越多,沒有人能掌控全局,修改無存下手,開發(fā)越來越不敢接需求。

        [if !supportLists]3.[endif]多個(gè)需求并行的開發(fā)是場(chǎng)噩夢(mèng),團(tuán)隊(duì)經(jīng)常加班,還是滿足不了業(yè)務(wù)需求的開發(fā),團(tuán)隊(duì)越來越是瓶頸,經(jīng)常接到業(yè)務(wù)方的投訴。

        業(yè)務(wù)中臺(tái)化也就是解決這些問題的最佳選擇,將交易域的核心能力和服務(wù),通過梳理抽象沉淀為穩(wěn)定外化的服務(wù),通過預(yù)留的擴(kuò)展點(diǎn),來支持個(gè)性化擴(kuò)展。擴(kuò)展點(diǎn)的開發(fā)完全可以由業(yè)務(wù)團(tuán)隊(duì)的技術(shù)來進(jìn)行,交易中臺(tái)研發(fā)將專注于中臺(tái)的建設(shè)和穩(wěn)定性,這樣講大大改善開發(fā)協(xié)作效率,一個(gè)業(yè)務(wù)能不能跑的快,主要依賴于前臺(tái),當(dāng)然業(yè)務(wù)中臺(tái)的技術(shù)團(tuán)隊(duì)需要做好業(yè)務(wù)隔離和中臺(tái)本身的穩(wěn)定高效進(jìn)化。

        了解交易的一般業(yè)務(wù)流程

        本篇是用來講交易的,結(jié)果扯了太多業(yè)務(wù)中臺(tái)的東西,現(xiàn)在直奔交易,看看交易的兩個(gè)業(yè)務(wù)流程。

        交易訂單創(chuàng)建流程:

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        簡化的逆向退款流程:

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        只舉例2個(gè)業(yè)務(wù)流程,其他的大同小異,對(duì)交易業(yè)務(wù)的分析和梳理,不難發(fā)現(xiàn),交易涉及的業(yè)務(wù)域可以歸類為以下幾個(gè)方面:價(jià)格,優(yōu)惠,庫存,拆單,支付,限購,交付,訂單,超時(shí),售后。

        交易業(yè)務(wù)中臺(tái)架構(gòu)

        通過對(duì)交易業(yè)務(wù)流程和業(yè)務(wù)的分析和梳理,采用20/80原則,可以建模抽象出基礎(chǔ)能力層

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        交易是很多契約的組合體,基礎(chǔ)能力服務(wù)是最原子性的,還需要將這些通過流程編排組合成有業(yè)務(wù)價(jià)值的交易產(chǎn)品來統(tǒng)一對(duì)外輸出和管理,這就是交易平臺(tái)產(chǎn)品層的職責(zé),解決共性和差異性的問題。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        此外交易系統(tǒng)需要依賴會(huì)員,商品,店鋪,庫存,優(yōu)惠,支付和物流等這樣的業(yè)務(wù)服務(wù)才能完成一個(gè)真正的交易,加上這些我們基本可以確定交易的業(yè)務(wù)中臺(tái)架構(gòu)圖,如下:

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        有了整體的全局大圖,接下來我們將會(huì)按照如下的框架來詳細(xì)介紹每個(gè)部分。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        總體設(shè)計(jì):

        核心業(yè)務(wù)領(lǐng)域模型:

        領(lǐng)域模型的設(shè)計(jì),還是遵守DDD的原則,這塊做的好壞,關(guān)鍵是對(duì)這塊業(yè)務(wù)的理解和未來一段時(shí)間的預(yù)判,加上抽象歸納。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        核心類圖:

        從總體設(shè)計(jì)的角度看,總體的類圖應(yīng)當(dāng)是關(guān)注業(yè)務(wù)模型本身,按照之前約定,我們先看BA層的業(yè)務(wù)模型

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        這個(gè)類圖,只畫了宏觀和重要的業(yè)務(wù)域類,其他用來支撐的類圖,將在BA層做展示,目前幫助理解交易這些類圖足夠說明問題,太多反而沒有重點(diǎn)。

        PA層是對(duì)外開放的服務(wù)層,按照慣例設(shè)計(jì),會(huì)有與其DO對(duì)應(yīng)的DTO類,此外考慮到購車更多的是承擔(dān)前臺(tái)層的功能,BA層不會(huì)引入購車,而將其放到了PA層。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        PA層的業(yè)務(wù)對(duì)象類圖,除了dto 類型外,還增加了消息事件對(duì)象,用來將交易的業(yè)務(wù)變化通過事件消息通知給對(duì)其感興趣的訂閱方,要說明的一點(diǎn)是BA層的DO對(duì)象,PA層是完全可以使用的。

        核心服務(wù)設(shè)計(jì):

        服務(wù)接入層更多的是前后端交互restful service的設(shè)計(jì),交易的PA層實(shí)質(zhì)上已經(jīng)做了對(duì)外開放的微服務(wù)設(shè)計(jì)(使用dubbo框架),服務(wù)接入層的restful service幾乎是對(duì)微服務(wù)進(jìn)行包裝參數(shù)轉(zhuǎn)換的處理,就沒有必要單獨(dú)說明restful

        service,直接看PA 最重要的幾個(gè)服務(wù)。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        核心鏈路時(shí)序設(shè)計(jì):

        通過最常規(guī)的下單購買和支付流程來說明交易的核心調(diào)用鏈路是怎么樣的過程,為了簡化說明下面的時(shí)序圖簡化了異常鏈路的處理過程和人為減少了依賴的業(yè)務(wù)系統(tǒng)。進(jìn)行核心鏈路依賴的設(shè)計(jì),是為了在設(shè)計(jì)階段更好的去評(píng)估依賴的合理性,確保交易的性能,安全性和容災(zāi)處理方面的要求。有了核心調(diào)用鏈路圖,你才能在設(shè)計(jì)階段確定哪些調(diào)用是可以減少的,哪些地方可以異步處理,哪些地方可以使用前置緩存,哪些地方需要異步重試,哪些地方不能超時(shí),哪些地方要確保最終一致性,哪些要做冪等處理等等,此外也對(duì)下游系統(tǒng)更好的評(píng)估自己的流量和響應(yīng)時(shí)間提供了參考依據(jù)。

        基于大中臺(tái)架構(gòu)的電商業(yè)務(wù)中臺(tái)最佳實(shí)踐

        交易這塊的技術(shù)設(shè)計(jì)點(diǎn)非常多,分布式高并發(fā)系統(tǒng)遇到的經(jīng)典技術(shù)問題,幾乎都在著有出現(xiàn),限于篇幅,將通過接下來的一篇專題文章專門介紹。

        推薦閱讀:益陽在線