自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分庫分表實戰(zhàn):最初的我們—了解一下單庫外賣訂單系統(tǒng)

數(shù)據(jù)庫 其他數(shù)據(jù)庫
如果你剛?cè)肼毩诉@家初創(chuàng)型互聯(lián)網(wǎng)公司,而你所在的部門又剛好是做外賣APP的訂單系統(tǒng)的,那你認(rèn)為入職之后要干的第一件事是什么呢?

前 言

??上一期內(nèi)容我們整體了解了分庫分表實戰(zhàn)項目當(dāng)前使用的系統(tǒng)架構(gòu)??,也就是單庫版本訂單系統(tǒng)的系統(tǒng)架構(gòu)。同時,我們也知道了未來要做的分庫分表版本的訂單系統(tǒng)架構(gòu)?,F(xiàn)在,我們就從單庫版本的訂單系統(tǒng)開始,一步一步的來進(jìn)行優(yōu)化。

如果想要優(yōu)化單庫版本的訂單系統(tǒng),首先要了解目前的訂單系統(tǒng)有哪些核心功能,核心功能的業(yè)務(wù)流程是什么。

如果你剛?cè)肼毩诉@家初創(chuàng)型互聯(lián)網(wǎng)公司,而你所在的部門又剛好是做外賣APP的訂單系統(tǒng)的,那你認(rèn)為入職之后要干的第一件事是什么呢?

必須是了解整個訂單系統(tǒng),你的leader可能會直接給你發(fā)個wiki,這個wiki中包含了單庫版本的系統(tǒng)架構(gòu)圖,如下圖:

分庫分表實戰(zhàn)(第2期):最初的我們——了解一下單庫外賣訂單系統(tǒng)

通過這張系統(tǒng)架構(gòu)圖,可以知道整個訂單系統(tǒng)目前有哪些核心功能,都使用了哪些技術(shù)棧。

并且,在這個wiki中除了有系統(tǒng)架構(gòu)圖之外,還有很多核心接口的業(yè)務(wù)流程圖,通過這些業(yè)務(wù)流程圖,可以快速了解到訂單系統(tǒng)核心接口的業(yè)務(wù)流程。

那訂單系統(tǒng)中,有哪些核心接口的業(yè)務(wù)流程圖?現(xiàn)在,我們一起來看一下。

用戶下單流程

大家或多或少都是點過外賣的,訂單系統(tǒng)涉及用戶和商家兩個角色的功能,先來看一下C端,即用戶端的一些業(yè)務(wù)流程,首先就是用戶下單的操作。

用戶可以在外賣APP中點外賣,當(dāng)用戶選中一個商品之后,會提交訂單,接著就會發(fā)起一個創(chuàng)建訂單的請求,如下圖:

分庫分表實戰(zhàn)(第2期):最初的我們——了解一下單庫外賣訂單系統(tǒng)

可以看到,創(chuàng)建訂單的請求首先會轉(zhuǎn)發(fā)給Controller組件,Controller組件再把請求交給Service組件處理,在Service組件中會先生成一個訂單號,然后為新的訂單組裝好訂單信息以及訂單明細(xì)信息。

隨后,Service組件再將組裝好的訂單信息轉(zhuǎn)交給Repository組件處理,Repository組件通過Mapper組件,最終將訂單的信息保存到數(shù)據(jù)庫中。

當(dāng)然,用戶正式下單之后,是需要支付訂單的,但是支付相關(guān)的功能,這里可以暫時不用關(guān)注。

用戶查詢訂單列表流程

當(dāng)用戶完成下單之后,用戶可能要看一下自己曾經(jīng)下過哪些訂單,所以,訂單系統(tǒng)還支持訂單列表查詢,如下圖:

分庫分表實戰(zhàn)(第2期):最初的我們——了解一下單庫外賣訂單系統(tǒng)

可以看到,用戶可以向外賣訂單系統(tǒng),發(fā)起一個查詢訂單列表的請求,請求同樣先轉(zhuǎn)發(fā)到Controller組件上,因為是查詢訂單列表的信息,所以我們只需要傳遞查詢的參數(shù)即可。

然后,Controller組件會把請求參數(shù),通過Service組件傳到Repository組件上,然后Repository組件可以調(diào)用Mapper組件的接口,再到數(shù)據(jù)庫中查詢用戶的所有訂單信息,查詢結(jié)果最后會形成一個訂單列表,最后一步步返回給用戶。

最終,用戶就可以從訂單列表中,看到自己下過的所有訂單信息了。

用戶查看訂單詳情流程

如果用戶還想要看下某個訂單里面的詳細(xì)信息,此時業(yè)務(wù)流程圖如下所示:

分庫分表實戰(zhàn)(第2期):最初的我們——了解一下單庫外賣訂單系統(tǒng)

可以看到,查詢訂單明細(xì)請求會先轉(zhuǎn)發(fā)到Controller組件上,然后Controller組件把請求交給Service組件處理。

隨后,Service組件攜帶著訂單號,將查詢訂單明細(xì)的請求交給Repository組件來查詢,Repository組件根據(jù)訂單號調(diào)用Mapper組件的接口,接口會到數(shù)據(jù)庫中查詢訂單及訂單明細(xì)的信息,最后將查詢出來的訂單明細(xì)信息返回給用戶。

用戶取消訂單流程

另外,用戶下單之后也是支持取消訂單的,當(dāng)用戶要取消一個訂單時,也會發(fā)送一個取消訂單的請求,如下圖:

分庫分表實戰(zhàn)(第2期):最初的我們——了解一下單庫外賣訂單系統(tǒng)

如所有請求一樣,取消訂單的請求首先發(fā)送給Controller組件,Controller組件會將請求交給Service組件處理,Service組件會把需要取消訂單的訂單號發(fā)送給Repository組件,Repository組件拿著訂單號調(diào)用Mapper組件中的接口,更新訂單將訂單取消掉。

現(xiàn)在,外賣訂單系統(tǒng)中,C端也就是用戶端的一些操作我們已經(jīng)了解了,而B端也就是商家的功能,和用戶端的功能是比較類似的。

商家也會查看訂單列表以及訂單的明細(xì)信息,而且,當(dāng)用戶下單之后,商家可以選擇接單或者拒接,一旦商家選擇接單,那么訂單狀態(tài)就會變?yōu)椤耙呀訂巍?,這些功能在我們的外賣訂單系統(tǒng)中都是支持的。

結(jié)束語

最后,在這個wiki中不僅有一堆的流程圖,還有訂單系統(tǒng)代碼倉庫的Git地址,然后你將代碼拉到本地,接著,你一邊看著這些wiki中的業(yè)務(wù)流程圖,一邊慢慢開始熟悉起來了代碼......

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2022-11-30 07:58:10

支付業(yè)務(wù)系統(tǒng)分庫分表

2022-10-09 18:14:31

訂單系統(tǒng)分庫分表

2022-06-30 07:34:46

分庫分表外賣訂單系統(tǒng)

2022-10-10 17:37:59

分庫分表訂單業(yè)務(wù)

2021-09-08 09:48:39

數(shù)據(jù)庫工具技術(shù)

2021-01-26 05:37:08

分庫分表內(nèi)存

2023-08-11 08:59:49

分庫分表數(shù)據(jù)數(shù)據(jù)庫

2018-04-25 06:46:52

2024-12-04 13:02:34

數(shù)據(jù)庫分庫分表

2023-06-30 08:27:20

2024-03-12 10:19:25

分庫分表擴(kuò)容

2017-03-02 13:23:53

訂單系統(tǒng)水平分庫

2022-07-11 08:16:47

NewSQL關(guān)系數(shù)據(jù)庫系統(tǒng)

2022-06-15 07:32:24

數(shù)據(jù)庫分庫分表

2022-02-23 08:55:06

數(shù)據(jù)遷移分庫分表數(shù)據(jù)庫

2021-01-21 10:23:43

數(shù)據(jù)庫架構(gòu)技術(shù)

2020-02-10 14:26:10

GitHub代碼倉庫

2019-01-16 14:00:54

數(shù)據(jù)庫分庫分表

2021-07-28 15:44:52

Java開發(fā)數(shù)據(jù)庫

2024-08-02 15:47:28

數(shù)據(jù)庫分庫分表
點贊
收藏

51CTO技術(shù)棧公眾號