业务系统拆分的基本思路
1. 梳理所有的業(yè)務(wù)功能環(huán)節(jié)
? ????粗粒度的拆,比如客戶服務(wù),訂單服務(wù)...
2. 選取某一業(yè)務(wù),比如訂單,從上至下的拆分,用思維導(dǎo)圖金字塔的方式進(jìn)行
? ? ?將服務(wù)的步驟理解清楚,比如 1. 校驗(yàn)? 2.生成訂單(接口方式、界面方式) 3.服務(wù)開(kāi)通 4.訂單歸檔? ? ??
3. 梳理所有業(yè)務(wù)主體,進(jìn)行歸類,畫(huà)出業(yè)務(wù)泳道圖。
? ? 如果系統(tǒng)的業(yè)務(wù)比較多,處理邏輯上有差異,可以將業(yè)務(wù)主體分為幾類,比如,普通業(yè)務(wù),短流程業(yè)務(wù),長(zhǎng)流程業(yè)務(wù),特殊業(yè)務(wù)等
4. 將金字塔結(jié)構(gòu)圖結(jié)合業(yè)務(wù)泳道圖通過(guò)關(guān)鍵指標(biāo)來(lái)識(shí)別關(guān)鍵業(yè)務(wù)功能
? ? (1) 將所有的通過(guò)用業(yè)務(wù)邏輯組成公共服務(wù),比如配置服務(wù),調(diào)度服務(wù),緩存服務(wù)等
? ? (2) 有一個(gè)業(yè)務(wù)主體,得到了各方面的關(guān)注,那么就把這個(gè)業(yè)務(wù)首先拆分出來(lái)獨(dú)立成一個(gè)嗚嗚
? ? (3) 長(zhǎng)流程業(yè)務(wù)就符合業(yè)務(wù)主體特殊一條標(biāo)準(zhǔn),可以提取為一個(gè)獨(dú)立的服務(wù)
? ? (4) 分渠道,比如將接口調(diào)用的邏輯和界面方式的邏輯解耦成兩個(gè)服務(wù),比如后臺(tái)和接口,使得兩個(gè)變成獨(dú)立的管道互不影響
5. 進(jìn)行重構(gòu)
? ? 重構(gòu)手法:
? ? (1) 因?yàn)闃I(yè)務(wù)量特別大,系統(tǒng)采用消息隊(duì)列的方式進(jìn)行處理,通過(guò)接骨法接觸代碼之間的耦合,并提供對(duì)外服務(wù)的借口
? ? (2) 首先拆除所有的公共服務(wù)(校驗(yàn)服務(wù),規(guī)則服務(wù),開(kāi)通服務(wù),歸檔服務(wù)),然后再拆分特殊業(yè)務(wù)主體服務(wù)(重點(diǎn)業(yè)務(wù),長(zhǎng)流程業(yè)務(wù)),最后拆不同驅(qū)動(dòng)實(shí)現(xiàn)方式(接口服務(wù)和界面服務(wù))
? ? (3) 比如創(chuàng)建訂單的環(huán)節(jié),設(shè)計(jì)所有的業(yè)務(wù)主體,影響大,所以這個(gè)服務(wù)不能一下子全拆出來(lái),要通過(guò)修路法,先建設(shè)一個(gè)訂單服務(wù)和原來(lái)的系統(tǒng)并行使用,同時(shí)分流出幾個(gè)試點(diǎn)業(yè)務(wù)到訂單服務(wù)。當(dāng)上下游調(diào)用沒(méi)有問(wèn)題,可以正常創(chuàng)建訂單后,再通過(guò)分批逃跑法,逐步地將其他業(yè)務(wù)的處理遷移到這個(gè)微服務(wù)上面,最終當(dāng)所有的業(yè)務(wù)都遷移成功之后,原來(lái)的系統(tǒng)的訂單處理邏輯就廢棄了。
? ? (4) 在這些業(yè)務(wù)的拆分過(guò)程中,數(shù)據(jù)庫(kù)拆分的工作也同時(shí)進(jìn)行
總結(jié)
以上是生活随笔為你收集整理的业务系统拆分的基本思路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: u盘安装计算机系统,U盘系统_详细教您将
- 下一篇: java毕业设计——基于java+JSP