<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          多業(yè)務(wù)模式下的交易鏈路探索與實(shí)踐

          共 2569字,需瀏覽 6分鐘

           ·

          2022-05-15 19:02

          • 一、背景

          • 二、交易中臺(tái)面臨的問(wèn)題

          • 三、交易鏈路實(shí)踐與探索

            • 3.1、交易鏈路實(shí)踐之FSM有限狀態(tài)機(jī)

            • 3.2、交易鏈路實(shí)踐之基于future的分階段并發(fā)模型

            • 3.3、交易鏈路探索之基于事件驅(qū)動(dòng)并發(fā)模型

          • 四、總結(jié)

          一、背景

          ??轉(zhuǎn)轉(zhuǎn)作為國(guó)內(nèi)頭部的二手閑置交易平臺(tái),從2015年成立至今,業(yè)務(wù)模式由C2C拓展至B2C、C2B、B2B、C2B2C等多模式并存的新格局,品類覆蓋手機(jī)3C、圖書、游戲奢侈品等三十余大類。

          ??轉(zhuǎn)轉(zhuǎn)目前采用的是中臺(tái)業(yè)務(wù)架構(gòu)模式,中臺(tái)(全文默認(rèn)指交易中臺(tái))負(fù)責(zé)提供通用,穩(wěn)定的交易能力,靈活快速響應(yīng)前臺(tái)業(yè)務(wù)需求;業(yè)務(wù)負(fù)責(zé)前臺(tái)探索持續(xù)創(chuàng)新,為用戶提供有價(jià)值的服務(wù)。

          二、交易中臺(tái)面臨的問(wèn)題

          ??交易中臺(tái)訂單系統(tǒng)承載了全公司各業(yè)務(wù)的通用訂單流轉(zhuǎn)能力,但是各業(yè)務(wù)模式的交易鏈路復(fù)雜多樣、同中有異,例如下圖:

          • 1、不同業(yè)務(wù)模式交易鏈路主節(jié)點(diǎn)有差異,且鎖庫(kù)存、發(fā)貨、結(jié)算等節(jié)點(diǎn)也有差異
          • 2、需要同時(shí)支持多種業(yè)務(wù)模型共存,且互不影響
          • 3、交易鏈路可拓展,節(jié)點(diǎn)可復(fù)用,維護(hù)成本低,響應(yīng)速度快,滿足業(yè)務(wù)日常快速迭代
          • 4、鏈路穩(wěn)定,數(shù)據(jù)準(zhǔn)確,流程可視化,能快速定位問(wèn)題

          顯然傳統(tǒng)硬編碼的方式已無(wú)法滿足需求,F(xiàn)SM有限狀態(tài)機(jī)呼之欲出。

          三、交易鏈路實(shí)踐與探索

          3.1、交易鏈路實(shí)踐之FSM有限狀態(tài)機(jī)

          FSM有限狀態(tài)機(jī)是什么?

          ??FSM有限狀態(tài)機(jī)(Finite-state machine, FSM), 簡(jiǎn)稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)計(jì)算模型,常用來(lái)描述對(duì)象在它的生命周期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應(yīng)外界的各種事件等。轉(zhuǎn)轉(zhuǎn)交易中臺(tái)根據(jù)其原理,結(jié)合業(yè)務(wù)場(chǎng)景提供了一個(gè)通用狀態(tài)流轉(zhuǎn)方案,用于在有限個(gè)訂單交易狀態(tài)之間的狀態(tài)遷移變化。

          FSM方案能做什么?

          ??FSM可快速搭建任何有流轉(zhuǎn)的單據(jù)鏈路,同時(shí)解決鏈路相關(guān)的離線任務(wù)、事務(wù)消息等問(wèn)題。

          FSM的四要素

          ??FSM將交易鏈路的狀態(tài)流轉(zhuǎn)進(jìn)行了抽象和結(jié)構(gòu)化,主要分為4個(gè)要素,即當(dāng)前狀態(tài)(現(xiàn)態(tài))、事件、動(dòng)作、目標(biāo)狀態(tài)(次態(tài))。其中“現(xiàn)態(tài)”和“事件”是因,“動(dòng)作”和“次態(tài)”是果,如下圖所示:

          • 現(xiàn)態(tài):指當(dāng)前所處的狀態(tài)。
          • 事件:又稱為“條件”。當(dāng)一個(gè)事件發(fā)生,將會(huì)觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。
          • 動(dòng)作:條件滿足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新?tīng)顟B(tài)。
          • 次態(tài):條件滿足后要遷往的新?tīng)顟B(tài)。

          FSM實(shí)踐改造

          ??在轉(zhuǎn)轉(zhuǎn)交易中臺(tái)訂單系統(tǒng),抽象了符合交易場(chǎng)景的狀態(tài)角色:

          • 狀態(tài)關(guān)系:初始狀態(tài)、目標(biāo)狀態(tài)

          • 角色:不同角色有不同的操作權(quán)限,比如賣家、買家、系統(tǒng)、客服

          • 操作:對(duì)應(yīng)事件Event

          • handler:對(duì)應(yīng)動(dòng)作Action實(shí)現(xiàn)

          FSM可視化交易鏈路

          ??運(yùn)營(yíng)后臺(tái)可查看指定交易鏈路FSM狀態(tài)機(jī)的狀態(tài)流轉(zhuǎn)全景圖,如下圖:

          FSM解決了交易主鏈路節(jié)點(diǎn)的流轉(zhuǎn)問(wèn)題,但是針對(duì)無(wú)狀態(tài)的單節(jié)點(diǎn)子鏈路不適用,例如下單節(jié)點(diǎn),包含商品、用戶、地址、庫(kù)存、促銷、埋點(diǎn)等多維信息的校驗(yàn)與整合。那么如何在保障下單鏈路的拓展性、復(fù)用性、穩(wěn)定性與高性能并存呢,請(qǐng)看下面的并發(fā)模型探索與實(shí)踐。

          3.2、交易鏈路實(shí)踐之基于future的分階段并發(fā)模型

          ??關(guān)于交易下單場(chǎng)景,外行人看就是創(chuàng)建一個(gè)訂單,一個(gè)insert; 其實(shí)不然,其中的邏輯復(fù)雜度遠(yuǎn)不止這些,我們來(lái)看下單需要做哪些邏輯:

          • 信息查詢(商品、用戶、地址、庫(kù)存、活動(dòng)、紅包、業(yè)務(wù)線、標(biāo)簽等)
          • 校驗(yàn)(庫(kù)存校驗(yàn)、地址校驗(yàn)、紅包校驗(yàn)、商品周期校驗(yàn)、服務(wù)校驗(yàn)、價(jià)格校驗(yàn)、積分校驗(yàn)、購(gòu)買次數(shù)校驗(yàn)等)
          • 風(fēng)控?cái)r截
          • 訂單信息組裝
          • 鎖庫(kù)存類(虛擬庫(kù)存、實(shí)物庫(kù)存、服務(wù)庫(kù)存、鎖紅包、鎖積分)
          • 活動(dòng)預(yù)算扣減
          • 持久化(創(chuàng)建訂單,創(chuàng)建支付單)
          • 操作流水,日志埋點(diǎn)等等

          以上只列了關(guān)鍵節(jié)點(diǎn)并不完整,意在表達(dá)下單邏輯的復(fù)雜性。

          a、傳統(tǒng)過(guò)程化串行模型:

          ??顯然,傳統(tǒng)的過(guò)程化串行模型,無(wú)論從性能方面,還是從代碼的靈活性、拓展性性方面已經(jīng)無(wú)法滿足我們的需求,所以這里我們下單采用了“基于future的分階段并發(fā)模型”

          b、基于future的分階段并發(fā)模型:

          相較于傳統(tǒng)過(guò)程化串行模型,有如下優(yōu)點(diǎn):

          • 多線程使接口整體性能大幅提升;
          • 將代碼更具功能進(jìn)行了抽象和結(jié)構(gòu)化,分割成相鄰狀態(tài)的最小單元,當(dāng)于搭建樂(lè)高積木,復(fù)用性顯著提升;
          • 拓展性與可維護(hù)性得到了質(zhì)的飛躍;

          但也存在一些缺點(diǎn):

          • 并發(fā)嚴(yán)格按照分組劃分,組內(nèi)耗時(shí)受約于最長(zhǎng)任務(wù)耗時(shí)
          • 分組劃分下,線程池利用率不飽和

          3.3、交易鏈路探索之基于事件驅(qū)動(dòng)并發(fā)模型

          轉(zhuǎn)轉(zhuǎn)公司Avenger系列提供了一個(gè)更加高效的并發(fā)組件(Avenger-Ultron),比原有的分階段并發(fā)模型更加高效。

          ??目前,該并發(fā)模型已廣泛應(yīng)用于公司內(nèi)各業(yè)務(wù)線的復(fù)雜并發(fā)場(chǎng)景(一次用戶請(qǐng)求接口內(nèi)部需要聚合幾十次rpc查詢的信息)。

          ??如果說(shuō),從傳統(tǒng)過(guò)程化串行模型,進(jìn)化到基于future的分階段并發(fā)模型,是從0到1的過(guò)程;那么從基于future的分階段并發(fā)模型,進(jìn)化到基于事件驅(qū)動(dòng)并發(fā)模型,可以看作從1到100的進(jìn)步。最后加上拓?fù)鋱D、監(jiān)控、熔斷、降級(jí)等周邊插件or工具的完善,可實(shí)現(xiàn)100到∞的跨維度提升。

          四、總結(jié)

          ??并發(fā)模型解決無(wú)狀態(tài)的復(fù)雜并發(fā)場(chǎng)景(如商品列表頁(yè)、詳情頁(yè)、首頁(yè)等),而FSM主要解決復(fù)雜業(yè)務(wù)場(chǎng)景交易鏈路狀態(tài)流轉(zhuǎn)的問(wèn)題,但FSM的應(yīng)用場(chǎng)景不止于交易訂單,還可用于其他有狀態(tài)的鏈路場(chǎng)景,比如OA工作流,質(zhì)檢流水線等。

          ??FSM只是一個(gè)框架,還需要搭建一整套基于它的外圍業(yè)務(wù)邏輯,在交易鏈路狀態(tài)流轉(zhuǎn)的過(guò)程中,業(yè)務(wù)邏輯才是我們的肌肉。業(yè)務(wù)邏輯與框架共同組成了我們交易中臺(tái)的技術(shù)體系,從而讓技術(shù)成長(zhǎng)更加健康,這也許就是中臺(tái)的魅力。


          作者簡(jiǎn)介

          郭世杰,轉(zhuǎn)轉(zhuǎn)交易中臺(tái)研發(fā)工程師

          EasyExcel太方便易用了,強(qiáng)烈推薦!

          2022-05-13

          漫畫 | 為什么程序員干兩年后就要跑路?

          2022-05-12

          2萬(wàn)字詳解,吃透 ES

          2022-05-11

          全網(wǎng)顯示 IP 歸屬地,是怎么實(shí)現(xiàn)的?

          2022-05-10

          10年了,軟件架構(gòu)是如何一步步演進(jìn)的?

          2022-05-09




          如果你覺(jué)得這篇文章不錯(cuò),那么,下篇通常會(huì)更好。備注“公眾號(hào)”添加微信好友(微信號(hào):zhuan2quan)

          ▲?長(zhǎng)按關(guān)注”程序新視界“,洞察技術(shù)內(nèi)幕


          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人网站在线免费看 | 最新中文字幕免费MV第一季歌词 | 亚洲成人网站在线观看 | 国产大尺度在线观看 | 付妙菱 女大学生羞涩 |