SpringCloud入門篇 謹以此文給小白
SpringCloud入門級指南
首先要明白springcloud是什麼,能幹什麼,然後才是怎麼用!!!
springcloud是什麼?
springCloud是基於SpringBoot的一整套實現微服務的框架。他提供了微服務開發所需的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等元件。最重要的是, 跟spring boot框架一起使用的話,會讓你開發微服務架構的雲服務非常好的方便。
SpringBoot旨在簡化建立產品級的 Spring 應用和服務,簡化了配置檔案,使用嵌入式web伺服器,含有諸多開箱即用微服務功能。
Dubbo很多功能元件都沒有提供實現,大多需要自行開發整合,而SpringCloud是相對比較成熟完善的一陣套微服務架構實現。
我們來一起看一下Springcloud執行原理
1. 首先我們提供服務的SpringBoot微服務專案,在 Netflix Eureka 註冊服務
2. 其它消費服務的SpringBoot微服務專案,可以在 Netflix Eureka 中訂閱服務
3. 消費服務的SpringBoot微服務專案,通過 Netflix Eureka 獲取服務提供者的真實地址,從而呼叫服務提供者的服務。
4. 消費服務的SpringBoot微服務專案,通過 RestTemplate ,或者 Feign 呼叫服務提供者
5. 當服務提供者提供叢集服務時,在 RestTemplate ,或者 Feign 呼叫服務時加入Ribbon負載均衡器 ,即可實現 RestTemplate ,或者 Feign 的負載均衡呼叫。
6.
7. 數不盡的SpringBoot微服務專案的URL呼叫和統一許可權處理等將是個難題, Netflix Zuul 作為閘道器路由,將會很好的處理這個問題,它統一管理所有URL的路由,提供動態路由,監控,彈性,安全等的邊緣服務。
8. 微服務專案中必將會遇到各種遠端呼叫異常情況,此時我們需要 Netflix Hystrix 來完成服務降級,斷路器保護等措施,以提高微服務專案的容錯能力。
綜上,叢集中各功能元件協調工作,則可以讓SpringCloud架構下的專案承受更高併發量,具有更強大的容錯高可用性。根據以上原理,我將在SpringCloud篇隨後幾篇文章中依次介紹所有的元件功能的簡單使用。在本篇文章中我們主要實現SpirngCloud的基本執行原理。以下我們一起動手實現Eureka註冊中心,服務提供者,服務消費者。
********************* Eureka 註冊中心 步驟: 5步************
1>建立SpringBoot專案
2>在pom.xml檔案中
引入Eureka依賴 spring-cloud-starter-eureka-server
配置 SpringCloud 的子專案版本集中管理 依賴 spring-cloud-dependencies
配置 SpringCloud 官方遠端倉庫 https://repo.spring.io/milestone
3> 在專案配置檔案application.yml中配置eureka註冊中心配置項
4>在專案入口函式上啟用註冊中心 @EnableEurekaServer
5>啟動專案,訪問註冊中心 http://localhost:8888/
********************* Eureka 伺服器提供者 步驟: 6步************
1>建立SpringBoot專案
2>在pom.xml檔案中
引入Eureka客戶端依賴 spring-cloud-starter-eureka
配置 SpringCloud 的子專案版本集中管理 依賴 spring-cloud-dependencies
配置 SpringCloud 官方遠端倉庫 https://repo.spring.io/milestone
3> 在專案配置檔案application.yml中配置eureka
4>隨便寫一個控制器服務
5>在專案入口函式上啟用註冊中心 客戶端@EnableEurekaClient
6>啟動專案
訪問 http://localhost:8002/getFuture 說明專案啟動成功
訪問註冊中心 http://localhost:8888/ 看到註冊中心已經註冊service-provider服務
******************** Eureka 伺服器消費者 RestTemplate 步驟: 7步************
1>建立SpringBoot專案
2>在pom.xml檔案中
引入Eureka客戶端依賴 spring-cloud-starter-eureka
配置 SpringCloud 的子專案版本集中管理 依賴 spring-cloud-dependencies
配置 SpringCloud 官方遠端倉庫 https://repo.spring.io/milestone
3> 在專案配置檔案application.yml中配置eureka
4>向Spring容器中加入RestTemplate物件
5>在service層自動注入RestTemplate物件呼叫eureka註冊中心的遠端服務
6>編寫控制器層呼叫上一步service層
7>在專案入口函式上啟用eureka客戶端@EnableEurekaClient
啟動專案,訪問
http://localhost:8001/getProviderFuture
對比服務提供者
http://localhost:8002/getFuture
詳細資訊 下面會給出原始碼
個人部落格下載中心:(springCloud入門基本程式碼(基礎篇))