Java后端微服務(wù)開發(fā),為什么要單獨把api模塊分離出來?
現(xiàn)在的軟件開發(fā)模式和傳統(tǒng)的有很多差別,傳統(tǒng)的開發(fā)模式耦合度較高,隨著技術(shù)的發(fā)展越來越多的開發(fā)模式被應(yīng)用,比如微服務(wù)架構(gòu)模式。其實很多開發(fā)語言都有自己的微服務(wù)解決方案,如Java系的Spring Boot、Spring Cloud等。但在實際項目開發(fā)中,即使是在微服務(wù)開發(fā)模式下,依舊有很多人喜歡單獨抽離出一個api模塊,這是為什么呢?
什么是微服務(wù)?
其實“微服務(wù)”并不是一種新的技術(shù),而是一種新興的架構(gòu)模式。簡單的說就是將一個服務(wù)拆成多個顆粒度小、易復(fù)用的子服務(wù),這樣做的好處就是:
- 應(yīng)用/服務(wù)解耦,避免了單個業(yè)務(wù)過于復(fù)雜;
- 每個微服務(wù)獨立開發(fā)和部署,擴展性更強,可以實現(xiàn)服務(wù)高可用;
- 服務(wù)組件化,易復(fù)用。
-

后端微服務(wù)開發(fā)時為什么還要單獨抽離API模塊?
既然我們是以微服務(wù)模式來開發(fā)項目的,為什么很多開發(fā)者還習(xí)慣性的建立一個API模塊出來呢?
其實開發(fā)微服務(wù)時,可以采用單模塊模式來開發(fā),而很多人采用多模塊來開發(fā)是因為遵循了“高內(nèi)聚、低耦合”的設(shè)計模式,這樣做的優(yōu)點就是:
1、邊界清晰、易于管理
一個中型項目在開發(fā)時會有很多業(yè)務(wù)和模塊,它們分散在各個包中,這樣就很混亂。如果有些API是希望對外公開的,有些API只允許內(nèi)部訪問或有限訪問,那就有必要將公開的API單獨抽離到一個單獨的API模塊中,這樣管理起來更方便。
2、各模塊間更容易聚合
把項目拆成多模塊來開發(fā),我們可以通過maven等來解決依懶關(guān)系,可以很方便的實現(xiàn)模塊間的聚合,各個模塊也可以單獨使用。
比如將工程拆分為這幾個模塊:公共模塊、對外API模塊、管理和監(jiān)控模塊、業(yè)務(wù)模塊等。


