欧美午夜精品久久久久免费视/欧美黄色精品/国产一级A片在线播出/A片免费视频在线观看

打造高效外賣下單體驗(yàn):聚合訂單、統(tǒng)一服務(wù),中臺(tái)架構(gòu)助力!
2023-03-14 01:02:12 歡樂點(diǎn)

目錄

聚合外賣訂單構(gòu)架

小程序下單構(gòu)架

統(tǒng)一訂單服務(wù)構(gòu)架

中臺(tái)構(gòu)架

總結(jié)

通過上面的介紹,我們?cè)缫押芮宄斯蚕矸?wù)和中臺(tái)的價(jià)值,但在實(shí)踐中,要不要對(duì)系統(tǒng)做這樣的升級(jí),我們還須要結(jié)合業(yè)務(wù)來(lái)判定,比如說(shuō):

1.

業(yè)務(wù)上有哪些重大變化,導(dǎo)致當(dāng)前系統(tǒng)的弊病早已很明顯,不能適應(yīng)業(yè)務(wù)發(fā)展了呢?

2.

架構(gòu)整修時(shí),如何在業(yè)務(wù)、系統(tǒng)、資源兩者之間做好平衡,對(duì)系統(tǒng)進(jìn)行分步式的改建

呢?

我們曉得,架構(gòu)沒有最好,只有最合適的。隨著業(yè)務(wù)的發(fā)展,系統(tǒng)須要不斷地升級(jí),這是一 個(gè)螺旋式上升的過程,如何結(jié)合當(dāng)前的業(yè)務(wù)發(fā)展階段,適時(shí)地推動(dòng)構(gòu)架改建,并能比較接地氣地落地,是我們要追求的目標(biāo)。

接下來(lái),我以實(shí)際的訂單系統(tǒng)改建為例,結(jié)合訂單業(yè)務(wù)的發(fā)展和系統(tǒng)的痛點(diǎn),為你介紹,如 何推動(dòng)構(gòu)架從單體到共享服務(wù)、再到中臺(tái)的改建過程,保證系統(tǒng)才能不斷適配業(yè)務(wù)的升級(jí)。

先說(shuō)下項(xiàng)目背景。公司作為供應(yīng)商,為小型餐飲連鎖企業(yè)構(gòu)筑 O2O 交易平臺(tái),包括三方聚合外賣、自有小程序、App 點(diǎn)餐,這些線上用戶的訂單最終會(huì)落到分店的收銀系統(tǒng),由門 店進(jìn)行履單。

公司的業(yè)務(wù)發(fā)展有一個(gè)變化過程,一開始只提供聚合外賣服務(wù),后來(lái)進(jìn)一步提供小程序App 下單服務(wù)。你可以發(fā)覺,整個(gè)訂單處理的構(gòu)架也是隨著業(yè)務(wù)的變化而不斷演化的,下面我就為你一一介紹。

聚合外賣訂單構(gòu)架

一開始,我們提供的是聚合外賣服務(wù),相應(yīng)地,系統(tǒng)整體構(gòu)架如下圖所示:

這里一共有三個(gè)系統(tǒng),分別是三方外賣平臺(tái)、門店收銀系統(tǒng)以及外賣系統(tǒng)。其中,外賣系統(tǒng) 是我們開發(fā)的,其他兩個(gè)都是我們要對(duì)接的外部系統(tǒng),接下來(lái),我說(shuō)下系統(tǒng)具體的交互過程。

首先,用戶在三方外賣平臺(tái)(如美團(tuán)、餓了么)下單;然后,我們的外賣系統(tǒng)通過外賣平臺(tái)的 API 拉取用戶的訂單,把訂單落到本地?cái)?shù)據(jù)庫(kù);最后,門店的收銀系統(tǒng)訪問外賣系統(tǒng)提供的插口獲取訂單,在店面內(nèi)部完成履單。當(dāng)然,門店履單后,收銀系統(tǒng)會(huì)反過來(lái)同步訂單狀態(tài)給外賣系統(tǒng),外賣系統(tǒng)再同步訂單狀態(tài)到第三方外賣平臺(tái)。

你可以看見,這里的外賣系統(tǒng)是一個(gè)單體應(yīng)用,內(nèi)部包含外賣同步插口和 POS 接口兩個(gè)模塊。其中,

外賣同步插口

負(fù)責(zé)和第三方外賣平臺(tái)對(duì)接,它主要是針對(duì)不同的外賣平臺(tái)做插口適配;而

POS 接口

負(fù)責(zé)和店面的收銀系統(tǒng)對(duì)接。這兩個(gè)模塊都是使用同一個(gè)外賣訂單數(shù)庫(kù)。

數(shù)據(jù)模型

上看,系統(tǒng)的訂單模型也是完全依照外賣訂單的需求設(shè)計(jì)的,訂單狀態(tài)管理也相對(duì)比較簡(jiǎn)單,因?yàn)檫@種訂單都是用戶在第三方外賣平臺(tái)早已完成支付的。所以,我們的外賣系統(tǒng),主要是負(fù)責(zé)管理店面履單過程中帶來(lái)的訂單狀態(tài)變化。

系統(tǒng)構(gòu)架

上看,外賣系統(tǒng)從外賣平臺(tái)接單,然后把訂單推送給前面的收銀系統(tǒng),只須要一個(gè)應(yīng)用、一個(gè)數(shù)據(jù)庫(kù)、兩套插口就可以支持,使用單體構(gòu)架才能挺好地滿足外賣的接單需求。

小程序下單構(gòu)架

接下來(lái),隨著公司業(yè)務(wù)的升級(jí),除了提供聚合外賣服務(wù)之外,公司還提供自有小程序的下單服務(wù)。這樣,消費(fèi)者既可以在三方外賣平臺(tái)下單,也可以在品牌自有的小程序里下單。

不同于三方外賣訂單,小程序下單平臺(tái)是一個(gè)完整的業(yè)務(wù)

,它包括小程序用戶注冊(cè)、商品和菜單瀏覽、商品加購(gòu)物車、在線支付等等。相應(yīng)地,這里會(huì)有多個(gè)基礎(chǔ)服務(wù)對(duì)應(yīng)具體業(yè)務(wù)的處理。比如,商品服務(wù)提供前臺(tái)的商品瀏覽功能,支付服務(wù)提供用戶的支付功能,這些基礎(chǔ)服務(wù)都是由獨(dú)立的小程序服務(wù)端負(fù)責(zé)整合,然后提供插口供小程序前端訪問。

當(dāng)用戶在小程序提交訂單后,小程序前端會(huì)調(diào)用服務(wù)端的下單插口,然后服務(wù)端調(diào)用訂單服務(wù),在小程序的訂單庫(kù)里落地訂單?,F(xiàn)在我們?cè)缫淹瓿闪饲芭_(tái)用戶的下單,但后臺(tái)的訂單履行如何處理呢?這里有兩種選擇:

小程序訂單和外賣訂單的處理類似,收銀系統(tǒng)不僅對(duì)接外賣系統(tǒng),同時(shí)也對(duì)接小程序的訂單服務(wù)。但這樣一來(lái),收銀系統(tǒng)須要同時(shí)對(duì)接兩套訂單插口,它須要做大的整修。由于這是第三方的系統(tǒng),我們?cè)趯?shí)踐中很難落地。 我們把小程序訂單當(dāng)成一個(gè)特殊的外賣渠道,把小程序訂單推送到外賣訂單庫(kù)里,最終還是由外賣系統(tǒng)來(lái)對(duì)接收銀系統(tǒng),也就是相當(dāng)于小程序訂單直接借用了外賣訂單的履單通道。

當(dāng)時(shí)因?yàn)轫?xiàng)目上線的時(shí)間比較緊急,同時(shí)從系統(tǒng)穩(wěn)定性的角度出發(fā),避免對(duì)收銀系統(tǒng)做大的整修,我們采用了

第二種形式

,小程序的訂單處理就嫁接在已有的外賣系統(tǒng)上,整個(gè)系統(tǒng)構(gòu)架如下圖所示:

你可以看見,小程序下單平臺(tái)和外賣系統(tǒng)相對(duì)獨(dú)立,同時(shí)為了更好地前饋,小程序訂單服務(wù)和外賣系統(tǒng)之間是通過

消息系統(tǒng)

同步訂單數(shù)據(jù)的。

這個(gè)方案是一個(gè)比較務(wù)實(shí)的選擇,通過復(fù)用外賣訂單的履單通路,我們也實(shí)現(xiàn)了小程序訂單的閉環(huán)處理。表面上看,我們節(jié)約了重新搭建系統(tǒng)的成本,也快速落地了小程序交易這條新業(yè)務(wù)線。

但這樣的構(gòu)架

實(shí)際上是一種妥協(xié)

,在后續(xù)的系統(tǒng)運(yùn)行過程中,給我們帶來(lái)了好多問題:

1. 這里有兩套訂單系統(tǒng),一套針對(duì)小程序訂單,一套針對(duì)外賣訂單。我們曉得,兩者的數(shù)組屬性和訂單狀態(tài)定義都有不同的地方,我們把小程序的訂單硬生玄參套在了外賣訂單的模型里,這樣限制了小程序訂單能力的擴(kuò)充。

2. 小程序訂單處理鏈路過長(zhǎng),從小程序服務(wù)端 -> 訂單服務(wù) -> 小程序訂單數(shù)據(jù)庫(kù) -> 消息系統(tǒng) -> 外賣同步插口 -> 外賣訂單數(shù)據(jù)庫(kù) -> POS 接口 -> 收銀系統(tǒng),一共包含了 8 個(gè)處理環(huán)節(jié),系統(tǒng)整體的性能和可用性都存在很大問題。比如,取餐碼早已從收銀系統(tǒng)同步給了外賣系統(tǒng),但因?yàn)橄㈥?duì)列堵塞,外賣系統(tǒng)不能及時(shí)同步給小程序的訂單服務(wù),這樣造成了小程序用戶不能及時(shí)地看見取餐碼。

3. 為了使兩套訂單系統(tǒng)前饋,我們使用了消息隊(duì)列在兩個(gè)庫(kù)之間同步訂單數(shù)據(jù),這增加了系統(tǒng)整體的穩(wěn)定性。實(shí)踐中,也發(fā)生過多起消息隊(duì)列故障造成的線上車禍。

你可以發(fā)覺,出現(xiàn)這種問題的癥結(jié)是我們把小程序訂單硬塞給外賣系統(tǒng),一方面訂單數(shù)據(jù)模型不匹配,另一方面因?yàn)檫@是兩個(gè)系統(tǒng)的簡(jiǎn)單拼接,導(dǎo)致系統(tǒng)調(diào)用鏈路很長(zhǎng),影響了業(yè)務(wù)的擴(kuò)充和系統(tǒng)的穩(wěn)定性。

那有沒有更好的辦法,能夠把這兩個(gè)系統(tǒng)有機(jī)地結(jié)合上去呢?

接下來(lái),我們就來(lái)看下,如何通過一個(gè)統(tǒng)一的訂單服務(wù)對(duì)兩個(gè)系統(tǒng)進(jìn)行深度的融合,從而靈活地支持多種訂單業(yè)務(wù)。

統(tǒng)一訂單服務(wù)構(gòu)架

這里,我們把小程序訂單服務(wù)提高為統(tǒng)一共享的訂單服務(wù),由它來(lái)落地所有類型的訂單。對(duì)于這個(gè)統(tǒng)一的訂單服務(wù)來(lái)說(shuō),外賣訂單、小程序訂單,或者是其他的新訂單,都是它的下單來(lái)源,所有訂單匯總在訂單服務(wù)里,然后統(tǒng)一提供給收銀系統(tǒng)進(jìn)行履單。具體構(gòu)架如下圖所示:

你可以看見,系統(tǒng)構(gòu)架經(jīng)過調(diào)整,有兩個(gè)大的變化:

1. 原來(lái)外賣和小程序各自有一個(gè)訂單庫(kù),現(xiàn)在合并為了一個(gè)訂單庫(kù),由這個(gè)訂單服務(wù)統(tǒng)一對(duì)外提供訂單數(shù)據(jù)的訪問和狀態(tài)管理。

2. 原來(lái)外賣系統(tǒng)的兩個(gè)模塊“外賣同步插口”和“POS 接口”,升級(jí)為了兩個(gè)獨(dú)立的應(yīng)用。外賣同步插口弄成外賣同步服務(wù),對(duì)接外賣平臺(tái);POS 接口弄成 POS 服務(wù),對(duì)接分店的收銀系統(tǒng)。它們都是通過統(tǒng)一訂單服務(wù)存取訂單數(shù)據(jù)。

經(jīng)過升級(jí),新的構(gòu)架具備了顯著的層次結(jié)構(gòu)本地外賣系統(tǒng),自上而下分為三層:

首先是各個(gè)渠道端,包括三方外賣平臺(tái)、小程序前端和 POS 收銀系統(tǒng);然后,每個(gè)端都有相應(yīng)的服務(wù)端來(lái)對(duì)接,比如外賣同步服務(wù)對(duì)接外賣平臺(tái)、小程序服務(wù)端對(duì)接小程序、POS 服務(wù)對(duì)接收銀系統(tǒng);最后,這些服務(wù)端都統(tǒng)一調(diào)用底層的訂單服務(wù)。

在這個(gè)構(gòu)架里,如果我們要降低新的下單渠道,就十分便捷,比如要支持 App 下單,我們提供 App 服務(wù)端即可;要新降低后臺(tái)履單方法也十分便捷,比如對(duì)于新的電子卡券類訂單,它不需要經(jīng)過收銀系統(tǒng),可以直接由企業(yè)的 OMS 系統(tǒng)(Order ,訂單管理系統(tǒng))處理,要實(shí)現(xiàn)這樣的業(yè)務(wù),我們只需新降低一個(gè)和 OMS 系統(tǒng)的適配應(yīng)用就可以了。所以,

這里就不僅僅是一個(gè)外賣訂單和小程序訂單的處理平臺(tái),而是升

級(jí)成了一個(gè)完整的全渠道交易平臺(tái)。

同時(shí),訂單處理的鏈路大大減短,從小程序服務(wù)端 -> 訂單服務(wù) -> 訂單數(shù)據(jù)庫(kù) -> POS 服務(wù) -> 收銀系統(tǒng),只有 5 個(gè)節(jié)點(diǎn),相比之前減輕了 3 個(gè)本地外賣系統(tǒng),系統(tǒng)的可用性和端到端的性能得到了大幅度的提高。

最后,統(tǒng)一訂單服務(wù)實(shí)現(xiàn)了統(tǒng)一的訂單屬性定義、統(tǒng)一的訂單狀態(tài)管理,以及訂單數(shù)據(jù)的集中儲(chǔ)存,這對(duì)后續(xù)的 BI 分析和數(shù)據(jù)中臺(tái)建設(shè)十分有幫助。它們處理數(shù)據(jù)時(shí),只須要從一個(gè)訂單庫(kù)拉取數(shù)據(jù),解析一個(gè)訂單數(shù)據(jù)模型就可以了。

中臺(tái)構(gòu)架

上面的統(tǒng)一訂單服務(wù)整合了外賣和小程序的訂單,并且為新的下單渠道預(yù)留擴(kuò)充。按照同樣 的思路,我們可以建立統(tǒng)一的商品服務(wù),同時(shí)滿足外賣和小程序上商品的管理;可以建立統(tǒng) 一的促銷服務(wù),同時(shí)支持線上和線下的促銷活動(dòng);也可以建立統(tǒng)一的庫(kù)存服務(wù),實(shí)現(xiàn)線上和 線下庫(kù)存的同步和共享等等。

通過建立這樣一系列的共享服務(wù),我們就實(shí)現(xiàn)了各個(gè)渠道業(yè)務(wù)規(guī)則和業(yè)務(wù)數(shù)據(jù)的統(tǒng)一管理,

最終我們落地了一個(gè)強(qiáng)悍的業(yè)務(wù)中臺(tái),可以很方便地?cái)U(kuò)充各個(gè)業(yè)務(wù),實(shí)現(xiàn)企業(yè)整體業(yè)務(wù)能力

的復(fù)用。

最后,實(shí)際項(xiàng)目的中臺(tái)構(gòu)架如下圖所示:

在這個(gè)構(gòu)架中,

前端

有 3 個(gè)業(yè)務(wù)場(chǎng)景,分別是小程序點(diǎn)單、App 商城下單、外賣平臺(tái)下單,每個(gè)業(yè)務(wù)場(chǎng)景都有相應(yīng)的

服務(wù)端

負(fù)責(zé)對(duì)接。在各個(gè)服務(wù)端下邊,還有一些

輔助的應(yīng)用

, 如購(gòu)物車、秒殺、拼團(tuán)等等。同時(shí)這兒還有一個(gè)

訂單控制服務(wù)

(Order , OCS),負(fù)責(zé)訂單邏輯的編排以及前后臺(tái)之間的狀態(tài)同步,你可以把它看作是基礎(chǔ)服務(wù)之上的聚合服務(wù)。

再下邊就是核心的

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

,它由 9 大服務(wù)中心組成,這些中心和商戶內(nèi)部系統(tǒng)進(jìn)行對(duì)接。其中,商品中心和庫(kù)存中心對(duì)接 ERP 系統(tǒng),會(huì)員中心對(duì)接 CRM 系統(tǒng),訂單中心對(duì)接POS 收銀系統(tǒng),這里的對(duì)接分別由對(duì)應(yīng)的適配插件負(fù)責(zé)。

通過這個(gè)訂單業(yè)務(wù)改建落地后的中臺(tái)構(gòu)架,你可以聽到,中臺(tái)由各個(gè)通用的基礎(chǔ)服務(wù)構(gòu)成, 它是相對(duì)標(biāo)準(zhǔn)的;而插件是定做的,具體和每位企業(yè)的后臺(tái)系統(tǒng)有關(guān)。這樣,通過共享服務(wù)和中臺(tái),我們就把企業(yè)內(nèi)部基礎(chǔ)設(shè)施和線上業(yè)務(wù)場(chǎng)景有效地打通了,從系統(tǒng)構(gòu)架的層面,為企業(yè)的全面數(shù)字化變革打下了良好的基礎(chǔ)。

總結(jié)

今天,我從一個(gè)企業(yè)的訂單業(yè)務(wù)變化出發(fā),為你介紹了為何要落地一個(gè)統(tǒng)一的訂單服務(wù), 以及怎樣落地,并通過構(gòu)建一系列類似的共享服務(wù),逐步升級(jí)系統(tǒng)到中臺(tái)構(gòu)架。

相信通過這個(gè)實(shí)際案例,你進(jìn)一步理解了怎樣通過共享服務(wù)和中臺(tái),實(shí)現(xiàn)業(yè)務(wù)能力的復(fù)用, 并能按照公司的業(yè)務(wù)發(fā)展階段,選擇合適的時(shí)機(jī)、合適的構(gòu)架,以接地氣的方法對(duì)系統(tǒng)進(jìn)行逐漸改建。

最后,給你留一道思考題:

目前你的公司有沒有落地共享服務(wù),它是如何逐漸演化過來(lái)的呢?

免責(zé)聲明:部分文章信息來(lái)源于網(wǎng)絡(luò)以及網(wǎng)友投稿,本站只負(fù)責(zé)對(duì)文章進(jìn)行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,如本站文章和轉(zhuǎn)稿涉及版權(quán)等問題,請(qǐng)作者在及時(shí)聯(lián)系本站,我們會(huì)盡快為您處理。

歡樂點(diǎn)

留言咨詢

×