更新時(shí)間:2022-06-08 來源:黑馬程序員 瀏覽量:
對(duì)于一般的公司而言,實(shí)踐微服務(wù)有非常大的技術(shù)挑戰(zhàn),所以并不是所有的公司都適合將單體架構(gòu)拆分成微服務(wù)架構(gòu)。一般來說,微服務(wù)架構(gòu)比較適合未來有一定的擴(kuò)展復(fù)雜度,且有很大用戶增量預(yù)期的應(yīng)用,例如一些新興的互聯(lián)網(wǎng)公司應(yīng)用。這些公司在創(chuàng)業(yè)初期,不可能買大量的或很貴的機(jī)器,但是又必須考慮應(yīng)對(duì)成功后巨量的用戶問題,這時(shí)微服務(wù)架構(gòu)就成了最好的選擇。除此之外,對(duì)于那些項(xiàng)目規(guī)模較大、業(yè)務(wù)復(fù)雜度較高,且需要長期跟進(jìn)的項(xiàng)目,也適合考慮使用微服務(wù)架構(gòu)。
在決定使用微服務(wù)架構(gòu)后,所面臨的另一個(gè)問題就是如何將系統(tǒng)拆分為微服務(wù)。對(duì)于微服務(wù)的拆分,可以參考如下幾點(diǎn)建議。
·通過業(yè)務(wù)功能分解并定義與業(yè)務(wù)功能相對(duì)應(yīng)的服務(wù)。
·將域驅(qū)動(dòng)設(shè)計(jì)分解為多個(gè)子域。
·按照動(dòng)詞或用例分解,并定義負(fù)責(zé)特定操作的服務(wù),例如一個(gè)負(fù)責(zé)完成訂單的航運(yùn)服務(wù)。
·通過定義一個(gè)對(duì)給定類型的實(shí)體或資源的所有操作負(fù)責(zé)的服務(wù)來分解名詞或資源,例如一個(gè)負(fù)責(zé)管理用戶賬戶的賬戶服務(wù)。
由于每個(gè)公司項(xiàng)的實(shí)際情況不同,所以微服務(wù)的拆分在實(shí)際操作時(shí),會(huì)涉及到很多不同的細(xì)節(jié)問題,這里就不一一描述了,但總體來說,項(xiàng)目在拆分時(shí)按照上述幾點(diǎn)建議即可。