真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

大中臺(tái)戰(zhàn)略下,中臺(tái)將公司業(yè)務(wù)的公共能力下沉,并采用更加合理、可復(fù)用的架構(gòu)和技術(shù)來(lái)實(shí)現(xiàn)這些基礎(chǔ)能力。在電商行業(yè)內(nèi),將面臨貨物的采購(gòu)、商品上架、交易發(fā)生、訂單狀態(tài)變化、客服介入等大量狀態(tài)維護(hù)。每個(gè)狀態(tài)之間具有很強(qiáng)的邏輯關(guān)聯(lián)關(guān)系,比如:退款操作在發(fā)貨前和發(fā)貨后將是完全不同的流程,如圖1訂單退款流程。

成都創(chuàng)新互聯(lián)公司秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,小程序制作,網(wǎng)頁(yè)設(shè)計(jì)制作,手機(jī)網(wǎng)站開(kāi)發(fā),成都全網(wǎng)營(yíng)銷幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件圖1 退款流程圖

由此可見(jiàn),對(duì)于復(fù)雜狀態(tài)的管理是一個(gè)業(yè)務(wù)依賴,需求多變的場(chǎng)景。在公司初創(chuàng)期,可以采用硬編碼方式,對(duì)于每一個(gè)操作進(jìn)行狀態(tài)判斷,每一步操作定制一套邏輯鏈路。隨著業(yè)務(wù)的增加,定制化鏈路顯然不優(yōu)雅,大量流程代碼無(wú)法維護(hù),此時(shí)中臺(tái)通用解決思路就尤為重要,有限狀態(tài)機(jī)(Finite State Machine,縮寫(xiě):FSM)開(kāi)始在中臺(tái)落地。

1 有限狀態(tài)機(jī)

有限狀態(tài)機(jī)(以下簡(jiǎn)稱FSM)又稱有限狀態(tài)自動(dòng)機(jī),簡(jiǎn)稱狀態(tài)機(jī)。維基百科定義是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。

這個(gè)模型和業(yè)務(wù)中臺(tái)遇到的問(wèn)題十分吻合。圖1是狀態(tài)轉(zhuǎn)移圖,可以用來(lái)表示狀態(tài)機(jī),此外可以使用狀態(tài)轉(zhuǎn)移表來(lái)表示。如圖2所示:

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

圖2 狀態(tài)轉(zhuǎn)移表

可以看出,F(xiàn)SM是通過(guò)抽象為動(dòng)作和狀態(tài),管理有限個(gè)狀態(tài)轉(zhuǎn)移的模型。動(dòng)作是在給定時(shí)刻要進(jìn)行的活動(dòng)的描述,我們總結(jié)動(dòng)作類型有如下:

  • 進(jìn)入動(dòng)作:在進(jìn)入狀態(tài)時(shí)進(jìn)行

  • 退出動(dòng)作:在退出狀態(tài)時(shí)進(jìn)行

  • 輸入動(dòng)作:依賴于當(dāng)前狀態(tài)和輸入條件進(jìn)行

  • 轉(zhuǎn)移動(dòng)作:在進(jìn)行特定轉(zhuǎn)移時(shí)進(jìn)行

在FSM框架下,將流水線的狀態(tài)流轉(zhuǎn)流程進(jìn)行了抽象和結(jié)構(gòu)化,將復(fù)雜的狀態(tài)轉(zhuǎn)移圖,分割成相鄰狀態(tài)的最小單元。這樣相當(dāng)于搭建了樂(lè)高積木,在這套機(jī)制上可以組合成復(fù)雜的狀態(tài)轉(zhuǎn)移圖。

2 Spring StateMachine

Spring Statemachine框架主要是幫助開(kāi)發(fā)者簡(jiǎn)化狀態(tài)機(jī)的開(kāi)發(fā)過(guò)程,讓狀態(tài)機(jī)結(jié)構(gòu)更加層次化,我們來(lái)看下Spring SM怎么實(shí)現(xiàn)。首先最小的樂(lè)高模型如圖3所示 :

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

圖3 SM最小單元

假如有狀態(tài) STATE1, STATE2和事件EVENT1, EVENT2。事件驅(qū)動(dòng)狀態(tài)流轉(zhuǎn)。下面來(lái)分析下Spring SM的主要代碼。

2.1 依賴pom

 

      

            org.springframework.statemachine 

            spring-statemachine-core 

            2.1.3.RELEASE 

     

2.2 創(chuàng)建狀態(tài)機(jī)

 通過(guò)注解來(lái)注冊(cè)狀態(tài)機(jī)的三要素:source、target、event

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

2.3 注解監(jiān)聽(tīng)器

通過(guò)監(jiān)聽(tīng)器感知事件發(fā)生,并相應(yīng)的處理相關(guān)邏輯

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

2.4 運(yùn)行狀態(tài)機(jī)

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

3 交易中臺(tái)

在交易場(chǎng)景,定義了自己的狀態(tài)機(jī)框架,抽象了符合交易場(chǎng)景的狀態(tài)角色:

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

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

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

  • handler:事件操作相應(yīng)的action實(shí)現(xiàn)

因此一個(gè)事件我們可以定義為:在角色A,在初始狀態(tài)S1下,執(zhí)行OP1操作,將使用handler來(lái)處理,執(zhí)行成功將狀態(tài)設(shè)置為目標(biāo)狀態(tài)S2。

3.1 個(gè)性化FSM抽象

鑒于交易的個(gè)性化需要,擴(kuò)展了狀態(tài)表的條件,同時(shí)使用handler和Java反射,來(lái)對(duì)邏輯代碼進(jìn)一步結(jié)構(gòu)化。到這一步后,我們可以將數(shù)據(jù)模板存儲(chǔ)到數(shù)據(jù)庫(kù)中。如圖4:

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

圖4 交易中臺(tái)FSM狀態(tài)表

通過(guò)改造,核心代碼FSM執(zhí)行引擎只有不到100行。通過(guò)注冊(cè)業(yè)務(wù)handler,可以靈活的擴(kuò)充業(yè)務(wù)能力。同時(shí)數(shù)據(jù)狀態(tài)的維護(hù)是通過(guò)狀態(tài)表,而不依賴手動(dòng)編寫(xiě)代碼,這對(duì)于代碼質(zhì)量的保證、工程回歸測(cè)試都節(jié)省了大量的時(shí)間。也為中臺(tái)實(shí)現(xiàn)配置化做好了鋪墊。

3.2 中臺(tái)賦能業(yè)務(wù)

中臺(tái)沉淀了基礎(chǔ)能力,如何實(shí)現(xiàn)?中臺(tái)如何賦能業(yè)務(wù)的,業(yè)務(wù)是否滿意呢?

看下面一個(gè)例子,基于交易,C2C、自營(yíng)是兩個(gè)具有極大區(qū)別的業(yè)務(wù),他們有完全不同的兩套業(yè)務(wù)流程。C2C平臺(tái)需要對(duì)買賣兩端進(jìn)行擔(dān)保,而自營(yíng)更多的是給予買家保證權(quán)益。簡(jiǎn)化版流程如圖5:

大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件

圖5 簡(jiǎn)化版交易流程

通過(guò)中臺(tái)FSM能力,我們只要能將狀態(tài)圖繪制出來(lái),那么相應(yīng)的狀態(tài)流轉(zhuǎn)表配置也已經(jīng)產(chǎn)生。handler 只需要關(guān)注當(dāng)前操作的業(yè)務(wù)邏輯,極大的解耦了狀態(tài)和業(yè)務(wù)。

可以毫不夸張的說(shuō),一個(gè)新業(yè)務(wù)過(guò)來(lái),中臺(tái)能在2天時(shí)間內(nèi)單人完成狀態(tài)機(jī)配置開(kāi)發(fā)上線。這就是中臺(tái)的效率。

4 總結(jié)

FSM解決復(fù)雜業(yè)務(wù)狀態(tài)流轉(zhuǎn)的問(wèn)題,并以交易業(yè)務(wù)進(jìn)行舉例。但是FSM的應(yīng)用場(chǎng)景遠(yuǎn)多于交易。比如客服工單,商品狀態(tài)等。但不是所有的流程都需要使用FSM,需要做好業(yè)務(wù)流程的折中,就像中臺(tái)戰(zhàn)略更適用于10-100 階段的公司一樣。

同時(shí)FSM只是一個(gè)框架,還需要搭建一整套基于它的外圍業(yè)務(wù)邏輯。在狀態(tài)流轉(zhuǎn)過(guò)程中,業(yè)務(wù)邏輯才是我們的肌肉??蚣芫拖窆趋兰s束著我們,從而讓技術(shù)成長(zhǎng)更加健康,這也許就是中臺(tái)的魅力。


新聞名稱:大中臺(tái)模式下如何構(gòu)建復(fù)雜業(yè)務(wù)核心狀態(tài)機(jī)組件
地址分享:http://weahome.cn/article/iihcgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部