1. 程式人生 > >可持續自動化構建微服務(10)SpringCloud 快速入門

可持續自動化構建微服務(10)SpringCloud 快速入門

第十章 SpringCloud 快速入門
按照官方的話說:Spring Cloud 為開發者提供了在分散式系統(如配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、一次性 Token、全域性鎖、決策競選、分散式會話和叢集狀態)操作的開發工具。最關鍵的是它足夠簡單,一般的開發人員只需要幾天時間就可以學會它的基本用法。
SpringCloud分散式開發五大神獸:
服務發現——Netflix Eureka
客服端負載均衡——Netflix Ribbon
斷路器——Netflix Hystrix
服務閘道器——Netflix Zuul
分散式配置——Spring Cloud Config

10Spring Cloud 快速入門
第六章已經講解了Spring Boot的快速入門,Spring Boot的功能還有很多,很強大,想熟練使用它,得有“懸樑刺股” 的精神!

Spring Cloud是在Spring Boot上發展起來的,下面我們以eureka(服務註冊與發現)開始它的蛻變之旅吧!
10.1 服務的註冊與發現(Eureka
10.1.1 建立服務註冊中心
10.1.1.1 建立子專案
在spring-cloud-demo父專案上右擊,選擇建立“Maven Module”,子專案名稱為“zjs-eureka” 。

10.1.1.2 編輯 POM 檔案
怎麼將一個SpringBoot改造成SpringCloud呢?其實很簡單,現在開始改造吧!

10.1.1.2.1 編輯父專案 POM 檔案
編輯父專案spring-cloud-demo的POM檔案,增加以下內容:

10.1.1.2.2 編輯子專案 POM 檔案
編輯子專案zjs-eureka的POM檔案,增加以下內容:

10.1.1.3 編輯啟動類
編輯子專案zjs-eureka的啟動類App.java,內容如下:
10.1.1.4 增加 application.yml 檔案

10.1.1.4 增加 application.yml 檔案

10.1.1.5 啟動服務註冊中心
在子專案zjs-eureka上右鍵App.java檔案,選擇run as -> Java Application。
如果沒有報錯的話,在瀏覽器中輸入:

http://localhost:8761

10.1.2 建立服務提供者
先前,我們已經建立了一個“zjs-service” 服務,執行也是正常的,現在我們動一下手術,讓它成為服務的提供者。
10.1.2.1 編輯 POM 檔案

10.1.2.2 編輯啟動類

10.1.2.3 編輯配置檔案
僅僅@EnableEurekaClient是不夠的,還需要在配置檔案中註明自己的服務註冊中心的地址,application.properties配置檔案如下:

需要指明spring.application.name,這個很重要,這在以後的服務與服務之間相互呼叫一般都是根據這個name 。
啟動工程,再次重新整理
http://localhost:8761

你會發現一個服務已經註冊在服務中了,服務名為ZJS-SERVICE,埠為8081,這時開啟 http://localhost:8081/springbootdemo/test ,你會在瀏覽器上看到 :

10.2 配置服務中心(Config)
10.2.1 建立 SVN 配置檔案倉庫
在SVN伺服器上建立springcloudconfig,並建立config資料夾,然後寫入一個配置檔案cloud-config-dev.properties也可以是cloud-config-dev.yml

10.2.2 建立配置服務端
在spring-cloud-demo下建立spring-cloud-config-server的子專案,並在POM檔案中新增

建立啟動類

新增配置檔案application.yml

啟動程式後,我們訪問 http://localhost:8888/cloud-config/dev,就可以看到配置資訊。

10.2.3 建立使用配置服務的客戶端
在spring-cloud-demo下建立spring-cloud-config-server的子專案,並在POM檔案中新增

新增啟動類

為了直觀看到配置中心內容,新增HelloController檔案,裡面用到了${message}變數,在此專案中,我們並不配置這個值,需要從配置中心獲取該值。

新增配置檔案application.yml

接下來,啟動該服務

最後服務成功啟動了

在瀏覽器中輸入http://localhost:8007/

SpringCloud有了這個功能後
配置資訊可以集中管理;
啟動服務時,指定配置更加方便;
本章只是介紹了Spring Cloud 的一個方面,其他元件請自行研究。