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的區別
- SpringBoot專注於快速方便的開發單個個體微服務,SpringCloud是關注全域性的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來,
- Spring boot專注於快速、方便整合的單個個體,Spring Cloud是關注全域性的服務治理框架;
- spring boot使用了預設大於配置的理念,很多整合方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。
- Spring boot可以離開Spring Cloud獨立使用開發專案,但是Spring Cloud離不開Spring boot,屬於依賴的關係。
總結,在微服務的大背景下,更多開發風向開始趨於前後端分離,在前後端分離的需求下,讓Spring Boot、spring cloud等更輕便的開發框架大放異彩。IT行業的更新快如閃電,作為程式設計師的我們,不得不時刻為自己充電。