精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    【得物技術(shù)】業(yè)務(wù)百倍增長,得物如何在三個(gè)月完成交易平臺重構(gòu)?

    嘉賓 | 陳思淼、金思宇

    得物 App 專注打造新一代潮流網(wǎng)購社區(qū)。截止到目前,得物 App 平臺用戶中,90 后占比超過八成。品牌升級和業(yè)務(wù)增長的同時(shí),對應(yīng)的業(yè)務(wù)架構(gòu)和技術(shù)體系也需要更新迭代。

    2020 年 3 月 16 日,得物技術(shù)團(tuán)隊(duì)在三個(gè)月的時(shí)間內(nèi)完成了整個(gè)交易體系的重構(gòu),交付了交易平臺化項(xiàng)目——五彩石項(xiàng)目。整個(gè)項(xiàng)目重新設(shè)計(jì)了 6 個(gè)核心交易應(yīng)用,完成 180 項(xiàng)操作,21 個(gè)系統(tǒng)重新發(fā)布,相應(yīng)的優(yōu)化迭代還涵蓋了社區(qū)、交易、供應(yīng)鏈的解耦,交易平臺化的演進(jìn)、底層交互協(xié)議的更新、全鏈路壓測落地等等。為了了解五彩石項(xiàng)目的整個(gè)構(gòu)建過程,InfoQ 采訪了得物 App CTO 陳思淼、交易平臺和穩(wěn)定性平臺負(fù)責(zé)人金思宇。

    1 電商平臺業(yè)務(wù)架構(gòu)的發(fā)展

    電商起源于 1990 年,經(jīng)歷了 30 年的發(fā)展,現(xiàn)在電商平臺已經(jīng)成為了主流購物方式之一。如果從業(yè)務(wù)架構(gòu)的角度來看,中國電商平臺經(jīng)歷了幾個(gè)發(fā)展階段呢?陳思淼和金思宇從各自的工作經(jīng)歷出發(fā),表示中國電商平臺的業(yè)務(wù)架構(gòu)都經(jīng)歷了相似的四個(gè)階段。

    第一階段:通常這時(shí)的電商平臺都是從零開始搭建的,全家桶系統(tǒng),包含最基礎(chǔ)的交易元素:用戶、商品、庫存、訂單、支付。這些功能可能只是一個(gè)系統(tǒng)中的多個(gè)子模塊,甚至只是一個(gè)簡單的類,可以滿足最基礎(chǔ)的交易需求。

    第二階段:隨著業(yè)務(wù)規(guī)模逐漸增大,團(tuán)隊(duì)人數(shù)也越來越多,整個(gè)平臺維護(hù)難度增加,耦合嚴(yán)重,性能瓶頸也逐漸出現(xiàn)。這時(shí)就會開始做系統(tǒng)拆分,從業(yè)務(wù)域、基礎(chǔ)服務(wù)、前后端分離的角度慢慢分割,拆分后的系統(tǒng)之間進(jìn)行通信 (同步 / 異步)。

    第三階段:分布式服務(wù),系統(tǒng)拆分之后,雖然各個(gè)服務(wù)會有多個(gè)團(tuán)隊(duì)分別負(fù)責(zé),職責(zé)清晰。不過服務(wù)之間的通信增多、依賴關(guān)系逐漸復(fù)雜,甚至需要支撐業(yè)務(wù)量會更大,這時(shí)就會對服務(wù)治理、監(jiān)控、緩存、數(shù)據(jù)分片、分布式事務(wù)等基礎(chǔ)建設(shè)有更高的要求。

    第四階段:隨著業(yè)務(wù)發(fā)展,在分布式服務(wù)的基礎(chǔ)上,對服務(wù)穩(wěn)定性、高可用等方面需要有更高的要求。淘系做了單元化、異地多活之后,這基本上變成了多個(gè)電商甚至外賣平臺追求的統(tǒng)一思路;而在容器化逐漸流行起來后,基于容器化做彈性資源管理以及混合云 (異地多活) 就變成了另一種趨勢。

    與其它平臺相比,電商平臺在數(shù)據(jù)準(zhǔn)確性、一致性、安全性,以及服務(wù)性能、服務(wù)穩(wěn)定性方面都有比較高的要求,而且一旦出問題很容易被放大

    所以,在做電商平臺的系統(tǒng)設(shè)計(jì)和落地時(shí),應(yīng)當(dāng)著重考慮以下幾個(gè)方面:

    是否在核心鏈路上,對于電商平臺,交易瀏覽鏈路及下單 & 支付鏈路 (包含優(yōu)惠活動(dòng) & 券) 屬于核心鏈路,需要評估應(yīng)用是否會對核心鏈路造成影響,以及屬于強(qiáng)依賴還是弱依賴;

    容量評估,包括峰值 QPS、每日產(chǎn)生的數(shù)據(jù)量,進(jìn)而確認(rèn)是否需要引入緩存、DB 選型(MySQL/TiDB)、數(shù)據(jù)是否需要 sharding、是否需要配置限流等;

    性能評估,包括上下游依賴、對業(yè)務(wù)流程的影響、交互采用同步還是異步、對整體 RT 的影響等;對于核心鏈路上的服務(wù),會在上線前做壓測評估;

    對數(shù)據(jù)穩(wěn)定性的影響,包括對原有庫表 & 索引的影響、對原有數(shù)據(jù)字段的影響、上下游數(shù)據(jù)一致性影響等。

    2 得物交易平臺的差異與發(fā)展

    得物 App 技術(shù)平臺構(gòu)建可以追溯到 2015 年。當(dāng)時(shí),得物 App 初版以潮流社區(qū) App 上線,打造國內(nèi)主流 Sneaker 互動(dòng)社區(qū)(2015 年 9 月 -2017 年初)。后來,基于對潮流文化的了解和年輕消費(fèi)的洞察,慢慢發(fā)現(xiàn)社區(qū)內(nèi)很多用戶有鑒別的強(qiáng)需求,才衍生出了交易業(yè)務(wù) (2017 年下半年)。

    得物與其它電商最大的區(qū)別是什么呢?得物 CTO 陳思淼表示最大的區(qū)別就是交易流程中包含鑒別環(huán)節(jié),一次交易存在強(qiáng)參與三個(gè)角色:買家、平臺、賣家,而不像傳統(tǒng)電商,平臺很多時(shí)候只是提供流量入口。當(dāng)然相應(yīng)的,因?yàn)槠脚_的“強(qiáng)中心化”深度介入,一筆訂單對于賣家視角和買家視角,其生命周期并不相同,以現(xiàn)貨交易為例,對于賣家而言,平臺收到商品并且鑒別通過,就會收到貨款,這筆訂單對他而言也就達(dá)到了終態(tài);而對于買家,只有在收到貨之后才可能是終態(tài)。

    除此之外,由于得物定位是潮流電商,因此對于平臺內(nèi)銷售的商品,其潮流屬性以及能否被鑒別有一定標(biāo)準(zhǔn),所有商品都是平臺統(tǒng)一維護(hù)(上下架、商品資料更新等等),也沒有店鋪的概念;

    最初,得物平臺內(nèi)的交易與社區(qū)、鑒別“環(huán)環(huán)相扣”,所以當(dāng)時(shí)的交易平臺是寫在同一個(gè) PHP 項(xiàng)目內(nèi),集群部署、共享緩存、數(shù)據(jù)庫。雖然,是很簡單的設(shè)計(jì),但對于當(dāng)時(shí)的得物卻是最合適的:能運(yùn)行,迭代速度快,可以快速響應(yīng)需求,很好的支撐了那個(gè)階段的業(yè)務(wù)發(fā)展。

    隨著得物的業(yè)務(wù)發(fā)展,交易平臺必須能夠支持更大規(guī)模的業(yè)務(wù)、支撐其差異化的交易。因此,交易平臺的迭代優(yōu)化勢在必行。

    2019 年下半年,由于業(yè)務(wù)發(fā)展太快,原有的交易平臺開始暴露出問題。一方面是無法承載更大的流量,經(jīng)常出現(xiàn)性能瓶頸,比如大促期間百倍流量突然到訪,壓力倍增,穩(wěn)定性也受影響;另一方面,原有系統(tǒng)架構(gòu)也難以支撐日漸復(fù)雜的業(yè)務(wù)需求,重復(fù)輪子越造越多。

    在這種情況下,得物 CTO 陳思淼決定啟動(dòng)交易平臺化項(xiàng)目,統(tǒng)一規(guī)劃 & 重構(gòu)整個(gè)交易體系,也就是“五彩石”項(xiàng)目。

    其實(shí)在此之前,得物交易平臺也一直在做優(yōu)化,包括服務(wù)拆分、引入新開發(fā)語言等等,但是底層數(shù)據(jù)模型并沒有發(fā)生變化。因此,五彩石項(xiàng)目首先重新設(shè)計(jì)了原本的商品、多個(gè)訂單系統(tǒng)、出價(jià),形成了新的商品中心、訂單中心、出價(jià)中心、銷售庫存中心、寄存中心以及超時(shí)中心。而支付和營銷、商家,只是配合做了一部分調(diào)整,沒有納入項(xiàng)目范圍。

    3 交易平臺化項(xiàng)目的業(yè)務(wù)架構(gòu)及技術(shù)選型

    受限于早期的團(tuán)隊(duì)技術(shù)基礎(chǔ)和業(yè)務(wù)模式,最初得物交易平臺技術(shù)選型和業(yè)務(wù)架構(gòu)設(shè)計(jì)做了很多妥協(xié)。因此,在交易平臺化項(xiàng)目中著重對此前痛點(diǎn)進(jìn)行了針對性設(shè)計(jì),當(dāng)然在此過程中經(jīng)歷了太多挑戰(zhàn),在技術(shù)選型和模型設(shè)計(jì)時(shí)也有很多思考與決策。

    首先是比較復(fù)雜的業(yè)務(wù)模型設(shè)計(jì),當(dāng)時(shí)團(tuán)隊(duì)幾位骨干討論了將近兩周,梳理出原有 9 個(gè)系統(tǒng)中的數(shù)十個(gè)對象,然后合并類似的對象及行為,抽取出 6 個(gè)核心業(yè)務(wù)域,按照領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的思路逐步設(shè)計(jì)整個(gè)系統(tǒng)。

    以訂單系統(tǒng)為例,當(dāng)時(shí)得物存在多個(gè)訂單系統(tǒng),分別面向不同類型賣家,在每個(gè)訂單系統(tǒng)中都包含了整個(gè)下單與支付邏輯,并維護(hù)了各自的庫存,而其他業(yè)務(wù)擁有各自的模型設(shè)計(jì),生命周期有太多差異。如果從更高的視角看,這些都是圍繞訂單這一模型的分場景行為。所以最終合并成統(tǒng)一的訂單中心,并引入狀態(tài)機(jī)引擎 Spring Statemachine 來解耦各個(gè)不同的交易流程,并在公用節(jié)點(diǎn)引入擴(kuò)展點(diǎn)來實(shí)現(xiàn)差異化細(xì)節(jié),而不應(yīng)該屬于訂單領(lǐng)域的庫存、物流、支付等信息,則分別劃歸到各自領(lǐng)域。

    設(shè)計(jì)商品模型時(shí)遇到了更多細(xì)節(jié)挑戰(zhàn)。商品其實(shí)是整個(gè)交易體系中最基礎(chǔ)也最復(fù)雜的模塊之一,原設(shè)計(jì)在平臺不斷擴(kuò)充品類的需求下難以為繼,經(jīng)過多次討論,得物最終參考業(yè)界內(nèi)多個(gè)主流電商平臺的設(shè)計(jì),引入 SPU-Item-SKU 模型,同時(shí)針對搜索 & 推薦場景引入 CSPU(區(qū)別于天貓達(dá)爾文商品體系的 CSPU)、前后端數(shù)據(jù)解耦 (前后端類目)、屬性分類 (銷售屬性、基本屬性、供應(yīng)鏈屬性、擴(kuò)展屬性) 等等,完成了最終的商品域模型及行為設(shè)計(jì)。

    目前很多人在談?lì)I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD),DDD 確實(shí)有很多可取之處,但在應(yīng)用時(shí)也很容易陷入爭論,例如領(lǐng)域、實(shí)體、值對象、聚合、聚合根、限界上下文、CQRS、事件溯源、分層架構(gòu)、六邊形架構(gòu)等等。實(shí)際上,DDD 的核心還是領(lǐng)域模型本身,通過領(lǐng)域?qū)嶓w、領(lǐng)域服務(wù)完成對應(yīng)的業(yè)務(wù)邏輯落地才是 DDD 的核心目標(biāo),至于其它,選擇最合適自己、合適團(tuán)隊(duì)的方式就足夠了。

    再聊聊技術(shù)選型,按照當(dāng)時(shí)的項(xiàng)目周期,可選空間相對有限,只能盡量滿足“夠用”的需求:

    采用了基礎(chǔ)架構(gòu)團(tuán)隊(duì)基于 SpringCloud 全家桶封裝了一套腳手架 Fusion,同時(shí)加入了 prometheus 監(jiān)控埋點(diǎn),而內(nèi)嵌的 Web 容器選擇了相較于 Tomcat 性能更好的 undertow。

    同步內(nèi)部通訊選擇了 Feign;注冊中心采用 Consul,配置中心選擇了相對友好的 Apollo;

    異步通訊統(tǒng)一選擇了 RocketMQ,結(jié)束了原有多個(gè) MQ 中間件混用的局面。

    存儲方面,Redis+ 阿里云 RDS,在部分大數(shù)據(jù)量場景做了數(shù)據(jù) sharding(sharding-jdbc)。

    交易平臺化項(xiàng)目上線后,經(jīng)過后期的不斷迭代優(yōu)化,目前交易平臺主要架構(gòu)圖如下:

    【得物技術(shù)】業(yè)務(wù)百倍增長,得物如何在三個(gè)月完成交易平臺重構(gòu)?

    4 交易平臺化項(xiàng)目遇到的挑戰(zhàn)

    技術(shù)選型只是完成了第一步,在得物交易平臺的整個(gè)落地過程中還有很多難題需要解決,在金思宇看來主要的挑戰(zhàn)有三個(gè):

    首先是協(xié)調(diào)問題,因?yàn)橹恢貥?gòu)了部分核心項(xiàng)目(6 個(gè)),而整個(gè)交易流程涉及到的上下游很多,所有的上下游系統(tǒng)都需要協(xié)調(diào)來配合改造升級。據(jù)了解,當(dāng)時(shí)涉及到的上下游系統(tǒng)共有 87 個(gè),整個(gè)項(xiàng)目的上線及流量切換流程被拆解成了 180+ 個(gè)操作步驟,最終才完成上線。

    其次是數(shù)據(jù)異構(gòu)遷移,由于底層數(shù)據(jù)模型做了重新設(shè)計(jì),原本分散在各個(gè)系統(tǒng)內(nèi)的訂單、庫存、超時(shí)信息等都需要統(tǒng)一轉(zhuǎn)換為新的數(shù)據(jù)結(jié)構(gòu),并清洗到新的系統(tǒng)中,同時(shí)保證時(shí)效,盡可能的降低對線上的影響。當(dāng)時(shí)有 27 億 + 條數(shù)據(jù)在此過程中被遷移,采用全量鋪底 + 增量追加的方式,在低流量時(shí)段停機(jī) 40 分鐘內(nèi)完成。

    最后是項(xiàng)目周期,整個(gè)交易平臺的項(xiàng)目周期是 2019 年 12 月 16 日到 2020 年 3 月 16 日。在項(xiàng)目后期,受疫情影響,全體項(xiàng)目成員遠(yuǎn)程辦公,團(tuán)隊(duì)溝通,項(xiàng)目效率,提測質(zhì)量,上下游配合等有較大影響。

    整個(gè)項(xiàng)目落地之后帶來的變化還是很明顯的,經(jīng)統(tǒng)計(jì),得物 App 線上問題數(shù)目及客訴數(shù)減少了 80% 以上。同時(shí),該項(xiàng)目還在不斷迭代優(yōu)化,目前需求迭代可以保持 1 到 2 周迭代一次,落地成本也明顯縮小。

    5 經(jīng)驗(yàn)總結(jié)與分享

    歷經(jīng)三個(gè)月,得物交易平臺五彩石項(xiàng)目成功交付,陳思淼和金思宇全程參與了整個(gè)項(xiàng)目的迭代優(yōu)化過程,并分享了一些經(jīng)驗(yàn),與大家共勉。

    在項(xiàng)目迭代優(yōu)化過程中,對原有業(yè)務(wù)的深入理解很關(guān)鍵,不要否定原有的設(shè)計(jì)、系統(tǒng),也不要急于落地新的東西,耐心吃透原有的業(yè)務(wù)邏輯,會讓之后的路順暢很多。

    架構(gòu)設(shè)計(jì)是非常重要的,尤其對于一個(gè)龐大的重構(gòu)項(xiàng)目,不但自己要想清楚,還需要明確輸出,同步給團(tuán)隊(duì)自己的設(shè)計(jì)思路,同時(shí)充分吸收大家的反饋,有選擇的進(jìn)行修正。

    越是龐大的項(xiàng)目,越是需要精細(xì)化的管理和推進(jìn),得物當(dāng)時(shí)選擇了小團(tuán)隊(duì)日會、全體項(xiàng)目同學(xué)雙日報(bào)、各 TL 周會的方式,及時(shí)發(fā)現(xiàn)問題并快速推進(jìn)解決。

    相信團(tuán)隊(duì)的力量,基本每個(gè)項(xiàng)目都不是一個(gè)人可以單獨(dú)完成的,肯定需要團(tuán)隊(duì)內(nèi)、外部的鼎力配合與相互協(xié)作,所以相信團(tuán)隊(duì)的力量。

    采訪嘉賓

    陳思淼,得物 App CTO & 國際事業(yè)部 (POIZON Global) 總經(jīng)理,負(fù)責(zé)得物 App 技術(shù)搭建、技術(shù)架構(gòu)及團(tuán)隊(duì)管理工作。陳思淼具備多年頂級互聯(lián)網(wǎng)平臺和電商平臺技術(shù)工作經(jīng)驗(yàn)。此前在阿里工作十一年,先后擔(dān)任淘寶資深技術(shù)專家,商家事業(yè)部技術(shù)負(fù)責(zé)人,Lazada CTO,阿里國際中臺技術(shù)負(fù)責(zé)人等職務(wù)。

    金思宇,得物 App 交易平臺 & 穩(wěn)定性平臺 Leader,畢業(yè)于東北大學(xué),先后在中興通訊、阿里巴巴、唯品會任職;對電商及上下游有比較豐富的開發(fā)及業(yè)務(wù)架構(gòu)經(jīng)驗(yàn)。目前帶領(lǐng)團(tuán)隊(duì)支撐得物 App 交易平臺的需求迭代,完善業(yè)務(wù)基礎(chǔ)能力,同時(shí)負(fù)責(zé)技術(shù)部穩(wěn)定性體系搭建及持續(xù)建設(shè)。

    活動(dòng)推薦

    陳思淼和金思宇將在 2020 年 12 月 20-21 日 QCon 全球軟件開發(fā)大會(上海站)上分享,介紹得物 App 的業(yè)務(wù)架構(gòu)演進(jìn)過程和技術(shù)細(xì)節(jié)。

    (免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
    任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )