1. 程式人生 > >微服務架構盛行的時代,你需要了解點 Spring Boot

微服務架構盛行的時代,你需要了解點 Spring Boot

措辭 理由 直接 響應 con 可伸縮 角度 徹底 構建

隨著互聯網的高速發展,龐大的用戶群體和快速的需求變化已經成為了傳統架構的痛點。

在這種情況下,如何從系統架構的角度出發,構建出靈活、易擴展的系統來快速響應需求的變化,同時,隨著用戶量的增加,如何保證系統的穩定性、高可用性、可伸縮性等等,成為了系統架構面臨的挑戰。

為了解決這些問題,微服務架構應運而生,它的本質在於分布式、去中心化。

微服務架構是一種架構模式或者說一種架構風格,它提倡將傳統的一站式應用(左下圖)根據業務拆分成一個個服務(右下圖),徹底去掉耦合,每個服務提供單個業務功能,一個服務只做一件事,運行在其獨立的進程中。

每個服務之間互相協調、互相配合,為用戶提供最終的價值。服務之間采用輕量級的通信機制(通常是基於 http 的 RESTful API)。

每個服務都圍繞著具體業務進行構建,並且能夠被獨立地部署到生產環境、類生產環境等。不同的服務也可以使用不同的數據庫和數據存儲。

另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來開發這些服務。

Spring Boot 誕生時,微服務概念正處於醞釀階段,Spring Boot 的研發融合了微服務架構的理念,是 Java 領域微服務架構最優落地的技術,給微服務架構提供了技術支撐。Spring Boot 有哪些優勢呢?

良好的基因:Spring Boot 是伴隨著 Spring 4.0 誕生的,繼承了 Spring 框架的優秀基因。

簡化編碼:傳統的 Spring web 項目需要引入一堆相關的依賴,而在 Spring Boot 中,我們只需要引入一個 starter-web 依賴即可快速創建 web 應用。
簡化配置:傳統的 Spring 項目一度被人認為是“配置地獄”,而 Spring Boot 更多的是采用 Java Config 的方式,簡化了配置的繁瑣。
簡化部署:Spring Boot 項目不需要在服務器上去部署 tomcat,因為 Spring Boot 內嵌了 tomcat,我們只需要將項目打成 jar 包,通過命令一鍵式啟動。
簡化監控:可以引入 spring-boot-start-actuator 依賴,直接使用 REST 方式來獲取進程的運行期性能參數,從而達到監控的目的,還可以配合 Spring Cloud 一起使用。
微服務是未來發展的趨勢,使用 Spring Boot 開發項目,會顛覆傳統的開發模式,大大提升開發效率,可以說如果你使用 Spring Boot 開發過項目,你就不願意再回到原來的開發方式了。

看看 Spring 官方對 Spring Boot 的定位:Build Anything,Build 任何東西。

Spring Boot 旨在盡可能快地啟動和運行,並且只需最少的 Spring 前期配置。 同時我們也來看一下官方對後面兩個的定位:

SpringCloud:Coordinate Anything,協調任何事情;

SpringCloud Data Flow:Connect everything,連接任何東西。

仔細品味一下,Spring 官網對 Spring Boot、SpringCloud 和 SpringCloud Data Flow 三者定位的措辭非常有味道,同時也可以看出,官方對這三個技術非常重視,我們還有什麽理由不去學習呢?在微服務盛行的今天,你真的需要了解點 Spring Boot。我對 Spring Boot 也稍有些研究。

微服務架構盛行的時代,你需要了解點 Spring Boot