天天看點

Spring、Spring Boot、Spring Cloud之間的聯系

在本系列文章開始前我們簡單談一談Spring,Spring Boot,Spring Cloud之間的關系(技術描述等内容各位自行百科吧),讓各位小白有初步認識(大佬請路過)。

使用過Spring的夥伴都知道Spring進行web開發有一些非常令人頭疼的地方:

  1. 依賴太多,還需要注意各依賴之間的相容關系
  2. 配置太麻煩,需要配置web.xml,Spring 容器,注解,資料庫,連接配接池,資源映射,事務,切面,過濾器,日志等等,而且大多數時候大部分都相同
  3. 部署和運作麻煩,需要部署到web容器中運作

而Spring Boot可以說是Spring架構的擴充,或者說是Spring的腳手架,它消除了Spring應用程式中所需的xml配置,讓我們可以更快捷、高效的進行開發,相較于Spring,Spring Boot的大大簡化了這些操作:

  1. 通過Starter poms簡化Maven配置和依賴管理
  2. 通過自動配置,解決配置輔助的問題
  3. Spring Boot内嵌web容器(Jetty,Undertow,Tomcat)

Spring Boot的核心思想是約定大于配置,一切都自動完成,在日常工作中我們自需要少量的代碼就能建立一個獨立、産品級别的Spring應用,大多數的Spirng Boot應用隻需要很少的Spring配置就可以搞定。

Spring與Spring Boot在日常開發中最大的差別大概就是Spring Boot沒有xml配置要求,大部分都是通過注解的形式,并且Spring Boot是通過應用來啟動web容器,而不是通過web容器來啟動應用。

而Spring Cloud是一系列架構的有序集合,一套分布式服務治理的架構。它利用了Spring Boot的開發便捷性簡化了分布式系統的開發,如服務發現、配置中心、消息總線、負載均衡、熔斷保護、監控等,都可以使用Spring Boot做到開發和部署。

Spring Boot專注于快速、友善內建的單個微服務個體,Spring Cloud關注全局的服務治理架構;在Spring Boot中約定大于配置的,很多內建方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來實作,是以Spring Cloud離不開Spring Boot,而Spring Boot可以離開Spring Cloud獨立使用開發項目,它們屬于依賴的關系。

Spring Cloud的優缺點:

優點:

  1. 易開發和維護,靈活性高
  2. 單個微服務啟動快
  3. 隐藏了元件的複雜性
  4. 元件豐富,功能齊全
  5. 友善進行局部修改與部署
  6. 技術選型不受限制,各微服務可不同技術棧
  7. 分布式部署,可對各個微服務所在伺服器進行性能擴充

缺點:

  1. 分布式存在複雜性
  2. 運維要求高
  3. 接口調整成本高
  4. 容易重複勞動

正常的學習曲線是Spring->Spring Boot->Spring Cloud。

繼續閱讀