java微服務開發最適合使用spring boot嗎?

此時花盛開


那今天就不談微服務是使用Dubbo還是Spring Cloud,也不討論是使用RPC還是Restful API,只單獨說一說為什麼大多數的Java微服務會使用Spring Boot。文中會有不少我個人的主觀看法,如果大家有不贊同的地方,可以留言討論。


首先,需要了解一下為什麼需要做微服務。

微服務架構是將整個應用程序分割成更小的獨立的服務,每個服務實現了一組獨立的功能,微服務通過API暴露自己的功能實現,再通過服務治理和服務編排等,完成系統的完整功能。

每個服務都是獨立並且微小的(其實這個【小】是很有爭議的,不在這裡展開討論),一個微服務由一個團隊負責管理,包括需求、開發、運維,可以自由選擇技術,不過要求遵守一定的規範;每個微服務都需要快速迭代和部署;總的來說,微服務架構突出了一個【快】字。

那麼在回到題目中的問題,微服務的開發是否適合使用Spring Boot。個人認為,答案是肯定的,Spring Boot適合使用在微服務的架構中。

Spring Boot在最初設計的初衷,就是為了簡化Spring應用工程的搭建,其實Spring Boot並沒有引入什麼新的東西,本質上它是在Spring和第三方框架的基礎上進行了整合;Spring Boot通過定義的註解替代了xml配置文件,內嵌應用服務器;“約定大於配置”的思想;

總之,Spring Boot讓服務的搭建、開發、部署、認證鑑權、監控都變得更加的簡單。

所以結合上面兩點,微服務注重項目粒度的劃分,一個項目會被分成多個子項目,子項目(微服務)之間獨立部署並通過協議進行數據交互,每個微服務都需要【快速】的迭代和部署;而Spring Boot的最大特點就是讓應用開發過程變得【更快】,因此在微服務架構中,Spring Boot是非常適合的。

當然開發框架只是【快速】開發的一部分,微服務框架也不是單指應用服務的微和快,舉個例子來說,如果你們的技術團隊依然是需求、開發、測試分開的,每一次業務提了需求,需要需求人員進行需求評審,然後給開發人員講解需求,開發人員開發完成之後,部署測試環境,測試人員開始進行測試;測試通過之後,提交上線申請,找一個上線節點,運維人員部署開發環境...

這樣是快不起來的...

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


現在國內JAVA開發微服務主要有springboot(springCloud),dubbo,兩個框架我都用過,就我個人而言,我覺得還是springboot更好一點!


springboot的理念是輕配置,自動化配置,內部集成,易部署,易監控!

springboot提供的starter啟動類系列可以讓開發人員進行快速開發,比如權限認證,消息組件,緩存集成等等,只需要簡單配置即可使用!

但是springboot只是一個基礎框架,在服務註冊與發現,監控集成等方面沒有提供完善的解決方案,而springCloud基於springboot,提供了一整套更加成熟的企業級的組件!

springCloud提供了服務註冊與發現,斷路器,客戶端負載均衡,網關,調用鏈監控,分佈式配置中心等組件,都是大型分佈式系統所必須的特性!



dobbo只是一個rpc框架,而且配置相對來說比較複雜,不過文檔比較完善,在國內使用的也比較多!

反正我覺得springCloud好,你們覺得呢?


分享到:


相關文章: