1. 程式人生 > >Spring Boot實戰系列《一》:大白話說微服務架構

Spring Boot實戰系列《一》:大白話說微服務架構

Spring Boot實戰系列《一》:大白話說微服務架構

本文是博主本人在面臨著即將畢業工作前,為了更深程度的早日融入社會企業文化中,而本人不太喜歡官方的一大堆專用名詞聽不太懂,一般來說,我都會學習完以後,轉為自己的白話來理解,所以難免有失偏頗之處,請看官們取其精華即可。

在學習Spring Boot之前,不得不先學習一下它的大時代背景——微服務。


1.目前的開發模式

目前的開發模式就是:ALL IN ONE (單體應用)

就是說,所有的功能模組,前後端都放在一個專案(應用)裡面。

就是各種OA、CRM系統等,都是將所有的頁面放在一個應用裡,然後打包成war包,上傳部署在tomcat的伺服器裡面,然後跟各種資料庫互動。

圖示:
在這裡插入圖片描述

開發過專案的人都知道,當專案需要部分更改的時候,需要重新打包,重新部署等等,牽一髮動全身。再就是隨著現在大資料的發展,很多應用逐漸發展為大專案,而不能全部把頁面放在一個專案包中。


2.什麼是微服務?


首先微服務是一種架構風(服務微化),一個大型複雜軟體應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署在單個或多個伺服器上,各個微服務之間是鬆耦合的,每一個功能元素最終都是一個可獨立替換和獨立升級的軟體單元;

一個應用應該是一組小型服務;可以通過HTTP的方式進行互通;

圖示:實際上就是一個關鍵詞:元素獨立在這裡插入圖片描述

也就是說,如果在修改其中某個模組的時候,其他的服務都要同時修改,那麼它們就不是微服務,因為它們緊耦合在一起;


3.為什麼採用微服務呢?


隨著系統業務量的不斷增多,單一的一套系統可能無法對應高併發,且系統變得越來越臃腫,後期難以維護。這種情況下會採用微服務架構設計。

引用一句大佬的:

"讓我們的系統儘可能快地響應變化" - Rebecca Parson


4.微服務架構的開發框架

那麼怎麼來實現微服務的架構呢?
這裡只說常用的Spring Boot 和Spring Cloud。

4.1、Spring cloud 框架

spring cloud就是微服務的一種的實現方式,spring cloud對微服務所需要的幾點特性封裝的比較好,如:零耦合,服務之間方便呼叫。

值得注意的是Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;

4.2、Spring boot 框架

Spring boot 是 Spring 的一套快速配置腳手架,可以基於spring boot 快速開發單個微服務;(下一篇文章重點講。)

概括來說就是:

	簡化Spring應用開發的一個框架。
	整個Spring技術棧的一個大整合。
	J2EE開發的一站式解決方案。

4.3、spring boot與spring cloud的區別

  1. SpringBoot專注於快速方便的開發單個個體微服務,SpringCloud是關注全域性的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來,
  2. Spring boot專注於快速、方便整合的單個個體,Spring Cloud是關注全域性的服務治理框架;
  3. spring boot使用了預設大於配置的理念,很多整合方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。
  4. Spring boot可以離開Spring Cloud獨立使用開發專案,但是Spring Cloud離不開Spring boot,屬於依賴的關係。

總結,在微服務的大背景下,更多開發風向開始趨於前後端分離,在前後端分離的需求下,讓Spring Boot、spring cloud等更輕便的開發框架大放異彩。IT行業的更新快如閃電,作為程式設計師的我們,不得不時刻為自己充電。