1. 程式人生 > >菜鳥的微服務之旅(3)---springCloud(1)

菜鳥的微服務之旅(3)---springCloud(1)

上一節,我們大致上講完了關於Springboot的基礎入門。

那麼接下來,就讓我用簡單的白話以及自己的理解來入門下springcloud。

springboot只能夠用來應用開發,如果說要搭建一個完整的微服務架構,那麼就還需要實現配置管理,服務發現,智慧路由,斷路器,微代理和控制匯流排等模組。而springcloud可以理解為是整合這一切的工具集。

我們的文章就是要一一介紹並簡單實現各個springcloud模組的功能。

一,springcloud的簡介

首先,我們理解幾個概念

  • springcloud的特點在於它的整合性,整合大量優秀的開源框架到自身的框架中(使用方便,功能齊全,易於維護和擴充套件,適用於各種環境)
  • springcloud的命名規則不像其他spring專案用數字來區分版本號,他是通過英文字母的順序,採用倫敦的“地名+版本”的方式來命名的,例如Angel SR6等,SR是Service Releases的縮寫,是固定的寫法,後面的數字是小版本號。

二,springcloud的服務發現模組(Erueka)

微服務架構中,有個很重要的模組,就是服務發現模組。這個模組主要是實現各個微服務例項的自動化註冊與發現。spring-cloud-netflix提供了Eureka來實現服務的發現功能。

Eureka的服務發現機制包含三個角色:服務註冊中心(Eureka Server),服務提供者(Eureka Client)和服務消費者(Eureka Client)。

流程:服務提供者要在執行時將自己提供的服務在服務註冊中心註冊,並週期性的傳送心跳來更新服務,預設時間是30s,如果連續三次心跳都不能夠發現服務,則從服務註冊中心將該服務節點移除;而服務消費者在執行時會去註冊中心獲取服務列表,然後通過暴露的路徑知道去哪裡呼叫服務,服務消費者跟服務註冊中心保持心跳連線,一旦服務提供者的地址發生變更,註冊中心會通知服務消費者。

三,搭建springcloud工程(搭建開始)

1.建立一個maven父工程springcloud-parent,並在pom.xml加入springcloud的版本依賴資訊

父工程中可以將src刪除掉。pom.xml中的packing標籤要改成pom方式

2.搭建服務端工程(父工程的module)

在父工程下建立maven子模組springcloud-eureka-server服務端工程,該模組是一個基礎的springboot工程。

(1)新增依賴

pom.xml

(2)編寫配置檔案(在這裡我們將application.properties改成application.yml,本文以yml配置檔案為準(兩者區別可自行了解))

application.yml

說明:

配置服務端工程的埠號為8761,所有例項都要在這個埠註冊

本專案預設是註冊中心,因此兩個false是設定本專案不需要對自己進行註冊和檢索

最後defaultZone是註冊中心的地址

(3)在自己的引導類加入註解@EnableEurekaServer標明類是一個Eureka Server

springcloudEurekaServerApplication.java

然後點選執行本專案  執行成功後訪問註冊中心地址(可見如下效果)

圖中的no Instances avaliable 說明還沒有例項註冊

如果執行不成功,專案報錯。可以考慮下是否是spring-boot-parent的版本相容問題,可以修改版本到1.5.15RELESES版本,重新啟動,即可成功啟動(springclou由於都是多個開源專案整合,所以經常會有版本相容的問題,如果遇到專案執行不成功,記得考慮下是否版本間出現相容問題)

3.搭建客戶端工程

在父工程下建立maven子模組springcloud-eureka-client服務端工程,該模組是一個基礎的springboot工程。

(1)新增依賴

pom.xml

(2)編寫配置檔案

application.yml

說明:

指定Eureka例項的埠號8000

指定註冊中心的地址

name指定應用名稱

(3)在引導類添加註解@EnableEurekaClient標明該類是是一個Eureka客戶端元件

(4)分別啟動註冊中心和該客戶端專案  執行成功後 訪問註冊中心地址:

標明服務已經註冊到註冊中心。

本文留下個小測試:如何實現服務間的呼叫?

測試內容:新建一個maven子模組專案做一個order服務,然後註冊到註冊中心,由springcloud-eureka-client專案通過註冊中心來呼叫oreder服務?答案下文會先回答~

----本文讀《微服務架構基礎》有感,引用其內容作為筆記記錄 供廣大學者參考學習。如有侵權,請及時告知。