天天看點

JAVA微服務入門總結分享 ——《我的Java打怪日記》Spring Boot微服務

Spring Boot

在了解

Spring Boot

之前,我們應該先了解一下 什麼是

Spring

, 因為是

Spring Boot

Spring

簡化配置。

JAVA微服務入門總結分享 ——《我的Java打怪日記》Spring Boot微服務

什麼是 Spring

Spring

是 一個開源架構,2003年 火起來的一個

輕量級

Java

開發架構。

作者:Rod Johnson.

Spring 是為了解決企業級應用開發的複雜性而建立的,簡化開發。

Spring 是 如何簡化開發的

  1. 基于

    POJO

    的輕量級和最小侵入性程式設計。
  2. 通過

    IOC

    , 依賴注入(DI) 和 面向接口實作松耦合。
  3. 基于切面 (AOP) 和 慣例進行聲明式程式設計。
  4. 通過切面和模闆減少樣式代碼。

什麼是Spring Boot

Spring Boot

是簡化

Spring

應用開發,約定大于配置。

Spring Boot

是由

Pivotal

團隊打造的,并在2014年釋出的一個全新架構,其設計目标就是用來簡化Spring應用的搭建、開發及部署。Spring Boot采用了特定的方式進行配置,進而達到使開發人員不在需要配置繁瑣的xml檔案。簡單的說其實Spring Boot并不是什麼新的架構,就是摒棄了xml的配置方式,使用了一種新的配置方式;然後在maven中使用starter的方式整合了很多第三方架構,同時提供了很多預設的配置參數。

Spring Boot主要特點

  • 可以快速的搭建一個

    Spring

    項目
  • 預設使用

    嵌入式 的 Servlet

    容器,應用無需打成

    WAR

  • 有很多

    starters

    自動依賴和版本控制 的 啟動器。 [ 類似于

    npm 依賴包

    ]
  • 自動化配置,簡化開發,可以配置修改預設值
  • 無需配置

    XML

    ,無代碼生成,開箱即用。
  • 生産環境的運作應用監控
  • 與雲計算的內建

主要簡化配置,建構項目快,入門門檻低

微服務

什麼是微服務

微服務是一種

架構風格

, 它要求我們在開發一個應用時,将這個應用建構成一系列小服務的組合,客套通過

HTTP

的方式進行互通。

微服務架構 就是 打破之前 單體架構all in one), 把每個功能元素獨立處理。把獨立出來的功能元素動态組合,需要的功能元素才拿來組合,需要多一些時可以整合多個功能元素。 微服務架構是對功能元素進行複制,而沒有對整個應用進行複制。

采用微服務架構開發的系統,每一個獨立的業務單元被劃分為一個單獨的子產品,而每一個子產品可以被獨立的部署在伺服器中,提供相應的業務服務。最終所有子產品提供的服務組合在一起,就可以形成一套完整的業務流程,成為一個系統。

JAVA微服務入門總結分享 ——《我的Java打怪日記》Spring Boot微服務

微服務架構主要特點

它主要解決了單體架構中存在的問題。

子產品之間互相獨立,通過接口完成子產品間的通信,有效降低了代碼的耦合度。在開發新增的業務功能時,你隻需要從代碼庫中下載下傳你需要的子產品,并不需要下載下傳所有的代碼,開發和測試将會更加簡單,并且新功能不會對原有的系統産生任何影響,系統的可擴充性得到了有效地提升。

  1. 節省了調用資源
  2. 每個功能元素的服務都是一個可替換的、可獨立更新的

什麼是單體架構?

單體架構比較初級,典型的三級架構,前端(Web/手機端)+中間業務邏輯層+資料庫層。

所有功能都部署在同一個伺服器中的系統,采用的架構就是單體架構。

JAVA微服務入門總結分享 ——《我的Java打怪日記》Spring Boot微服務

單體架構的主要特點

優點

  • 部署 / 測試 容易
  • 開發簡單,集中式管理
  • 功能都在本地,沒有分布式的管理和調用消耗

缺點

  • 複雜性高

    複雜性高,當項目疊代時間長,子產品代碼會變臃腫,耦合度高,難以維護

  • 擴充能力受限

    體應用隻能作為一個整體進行擴充,無法根據業務子產品的需要進行伸縮。

  • 穩定性差

    一個微小的問題,都可能導緻整個應用挂掉

  • 不靈活

    建構時間長,任何小修改都要重構整個項目,耗時

  • 效率低

    開發都在同一個項目改代碼,互相等待,沖突不斷