🛫更多知識總結見SpringBoot 2專欄
🚕本篇知識點總結自尚硅谷雷神的視頻
🚒博主對于該知識尚在學習階段
🚄如果發現存在問題請毫不吝嗇的指出
🚀🚀扎哇太棗糕的博客主頁🚀🚀
?
目錄
1 初識SpringBoot
1.1 概念
1.2 為什么要使用SpringBoot
1.2.1 SpringBoot的優點
1.2.2 SpringBoot的缺點
2 SpringBoot的技術背景
2.1 微服務
2.2 分布式
2.3 云原生
????????這一章節是對SpringBoot的基礎知識進行一個講解,內容可能會比較的枯燥,先學習一遍加深印象即可。
1 初識SpringBoot
1.1 概念
??SpringBoot是Spring全家桶的成員之一,基于約定優于配置的思想(即有約定默認值,在不配置的情況下會使用默認值,在配置文件下配置的話會使用配置的值)。SpringBoot是一種整合Spring技術棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發的腳手架。
1.2 為什么要使用SpringBoot
????????官網對這個問題作出如此解答
?
1.2.1 SpringBoot的優點
- 創建獨立Spring應用:SpringBoot本身創建的也是一個Spring應用
- 內嵌web服務器:Spring的web項目需要打成war使用tomcat服務器運行,SpringBoot創建的應用自帶服務器,無需再下載tomcat
- 自動starter依賴,簡化構建配置:只需導入相關場景的依賴,其底層需要使用的各個jar包和版本都已經配置好了
- 自動配置Spring以及第三方功能:取代之前Spring的一系列對spring、SpringMVC、MyBatis的配置文件,直接上手編寫業務代碼
- 提供生產級別的監控、健康檢查及外部化配置
- 無代碼生成、無需編寫XML
1.2.2 SpringBoot的缺點
- 版本迭代更新太快,人稱版本帝
- 封裝的太深,內部原理復雜,不容易精通
2 SpringBoot的技術背景
2.1 微服務
????????SpringBoot是一種用來管理微服務的框架,讓程序員可以不必在配置與邏輯業務之間進行思維切換,從而加快Spring開發的速度。
? ? ? ? 微服務是一種架構風格,這種風格習慣于將一個應用圍繞業務功能拆分為一組小型服務。每個服務運行在自己的進程內,也就是可獨立部署和升級。各個微服務之間使用輕量級HTTP交互,??可以由全自動部署機制獨立部署。微服務是去中心化的,實現服務自治,即服務可以使用不同的語言、不同的存儲技術。
2.2 分布式
? ? ? ? 由于微服務架構風格的興起,一個應用被拆分成為許多的微服務獨立部署之后,就會導致分布式的產生。
????????分布式的存在會導致一些問題需要解決:遠程調用(各個微服務之間相互調用)、服務發現(確認哪些服務是可用的)、負載均衡(決定調用哪個服務)、服務容錯(各種錯誤情況下的處理方式)、配置管理(修改配置中心的配置,部署在不同機器上的相同服務自動同步最新配置)、服務監控(多個服務以及云平臺的資源消耗和健康狀況)、鏈路追蹤(出錯后通過鏈路找到出錯的服務)、日志管理(整個分布式網路上所有的服務的日志信息)、任務調度(對某一任務進行定時任務時,部署在不同機器上的相同服務的觸發個數、觸發方式……)
? ? ? ? 以上問題的解決方法:SpringBoot + SpringCloud + SpringCloudDataFlow
2.3 云原生
? ? ? ? 服務開發之后需要使用云部署供大家應用,原生應用上云又會產生以下問題:服務自愈(服務崩了能否在另一臺服務器上自動部署一個一樣的服務)、彈性收縮(流量高峰期間,服務是否可以自動在別的幾臺服務器上自動部署多臺服務,過了高峰期之后再下線)、服務隔離(部署在一臺服務器上的服務相互之間不影響)、自動化部署(不用一個一個將服務部署到服務器上)、灰度發布(服務更新時先更新其中的一小部分,等到新老版本共存沒有問題之后,慢慢替換掉剩下的所有老服務)、流量治理(動態設置每個服務的進出流量)