Spring Cloud 是什么?
在學習本課程之前,讀者有必要先了解一下 Spring Cloud。
Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發(fā)便利性簡化了分布式系統(tǒng)的開發(fā),比如服務(wù)發(fā)現(xiàn)、服務(wù)網(wǎng)關(guān)、服務(wù)路由、鏈路追蹤等。Spring Cloud 并不重復(fù)造輪子,而是將市面上開發(fā)得比較好的模塊集成進去,進行封裝,從而減少了各模塊的開發(fā)成本。換句話說:Spring Cloud 提供了構(gòu)建分布式系統(tǒng)所需的“全家桶”。
Spring Cloud 現(xiàn)狀
目前,國內(nèi)使用 Spring Cloud 技術(shù)的公司并不多見,不是因為 Spring Cloud 不好,主要原因有以下幾點:
Spring Cloud 中文文檔較少,出現(xiàn)問題網(wǎng)上沒有太多的解決方案。
國內(nèi)創(chuàng)業(yè)型公司技術(shù)老大大多是阿里系員工,而阿里系多采用 Dubbo 來構(gòu)建微服務(wù)架構(gòu)。
大型公司基本都有自己的分布式解決方案,而中小型公司的架構(gòu)很多用不上微服務(wù),所以沒有采用 Spring Cloud 的必要性。
但是,微服務(wù)架構(gòu)是一個趨勢,而 Spring Cloud 是微服務(wù)解決方案的佼佼者,這也是作者寫本系列課程的意義所在。
Spring Cloud 優(yōu)缺點
其主要優(yōu)點有:
集大成者,Spring Cloud 包含了微服務(wù)架構(gòu)的方方面面。
約定優(yōu)于配置,基于注解,沒有配置文件。
輕量級組件,Spring Cloud 整合的組件大多比較輕量級,且都是各自領(lǐng)域的佼佼者。
開發(fā)簡便,Spring Cloud 對各個組件進行了大量的封裝,從而簡化了開發(fā)。
開發(fā)靈活,Spring Cloud 的組件都是解耦的,開發(fā)人員可以靈活按需選擇組件。
接下來,我們看下它的缺點:
項目結(jié)構(gòu)復(fù)雜,每一個組件或者每一個服務(wù)都需要創(chuàng)建一個項目。
部署門檻高,項目部署需要配合 Docker 等容器技術(shù)進行集群部署,而要想深入了解 Docker,學習成本高。
Spring Cloud 的優(yōu)勢是顯而易見的。因此對于想研究微服務(wù)架構(gòu)的同學來說,學習 Spring Cloud 是一個不錯的選擇。
Spring Cloud 和 Dubbo 對比
Dubbo 只是實現(xiàn)了服務(wù)治理,而 Spring Cloud 實現(xiàn)了微服務(wù)架構(gòu)的方方面面,服務(wù)治理只是其中的一個方面。下面通過一張圖對其進行比較: