個人博客網:https://wushaopei.github.io/ (你想要這里多有)
前言: 分布式架構及微服務理念
1.SOA理念(思想)
SOA :即 Service Oriented Architecture,面向服務架構
主張:
把項目中的各個模塊從單一架構中拆分出來,封裝成一個一個可以遠程調用的服務,從而實現分布式架構。
開發具體的每一個服務時,使用一個interface定義這個服務的功能,這就是我們常說的暴露接口。
當我們實現了interface,將接口暴露到了網絡上,可以進行遠程調用了,就可以說這個服務開發完成了,這就是我們常說的“寫接口”。
SOA精髓:通過提供服務和對服務的調用實現分布式架構。
項目 -----> 模塊 -------> 代碼
2. micro service 微服務理念
微服務主張服務的“微小化”,將各個模塊服務中重復的功能抽取出來封裝為微服務,用微服務組裝稱為各個功能模塊。功能模塊再組成項目。
項目 -----> 模塊 -----> 微服務 -----> 代碼
3.關於 SpringCloud 和 SpringBoot 的關系
這是對微服務理念的一整套具體實現。
SpringBoot在微觀上開發具體的一個一個微服務。
SpringCloud在宏觀上統一管理、協調各個微服務。為微服務提供各個服務的注冊中心、網關、配置中心、負載均衡、熔斷機制、服務降級、服務監控、服務細節屏蔽等等。
4.SpringCloud 和 Dubbo 對比
- 最重要的區別:
Dubbo:底層RPC 調用
SpringCloud : 底層REST調用(HTTP)
SpringCloud 能夠為項目架構直接提供一整套解決方案。
Dubbo只能作為項目架構的核心和基石,完整的項目架構解決方案還需要借助其他技術。
5.SpringBoot工程的使用
- 加入需要的場景 starter依賴
- 配置properties或yml
- 創建主啟動類
- 通過注解開啟相關功能
- 運行主啟動類
6.HelloWorld
6.1 操作步驟
①創建Maven工程
② 加入依賴
③創建主啟動類
④創建HelloHandler
⑤ 啟動
運行主啟動類中的main方法啟動SpringBoot程序。
⑥通過網頁訪問handler方法
擴展: 關於包掃描的問題
SpringBoot中主啟動類會自動掃描該類所在包的子包,相當於xml配置文件中的<mvc:context scan=”包掃描路徑”/>
-
隱式默認聲明自動導包
注意: 要進行掃描的包必須處於主啟動類的子包中。
-
手動掃描包
使用注解進行包
訪問結果:
6.2 通過 Spring 插件創建 SpringBoot工程
限制: 每次創建工程都必須聯網:必須借助Spring 插件
效果 :自動生成主啟動器和application.properties,以及測試類