一個C#開發者學習SpringCloud搭建微服務的心路歷程

前言
Spring Cloud很火,很多文章都有介紹如何使用,但對于我這種初學者,我需要從創建項目開始學起,所以這些文章對于我的啟蒙,幫助不大,所以只好自己寫一篇文章 , 用于備忘 。
SpringCloud是封裝了Netflix公司開發的Eureka模塊來實現服務注冊和發現 。下圖為Spring Cloud Eureka的本版列表:

一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
下圖為Spring Cloud 微服務的各個實現的總覽 。
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
創建父項目
首先,我們打開IEDA創建項目,然后選擇Maven選項,然后點擊下一步,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
創建完成后,是一個空的Java父項目,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
創建服務查詢中心子項目——EurekaServer
EurekaServer是用于服務查詢的 , C#開發者可能更熟悉consul,雖然用法不一樣,但實現的效果是一樣的 。
現在我們創建一個服務查詢中心項目,在項目上右鍵-->new-->Module-->Spring Initializr-->next,選擇和父類項目同一版本的jdk , 如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
然后選擇SpringCloudDiscovery—EurekaServer,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
創建完成如下圖所示:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
打開新建的項目的入口文件——EurekaserverApplication,為EurekaserverApplication類增加注解@EnableEurekaServer,這個注解會將當前類標記為Eureka Server 。
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
然后修改application.properties為application.yml,編寫代碼如下:
# 配置啟動端口server:port: 5180# 配置eurekaeureka:instance:hostname: localhostclient:fetch-registry: false # 表示是否從Eureka Server獲取注冊信息,默認為true.因為這是一個單點的Eureka Server,不需要同步其他的Eureka Server節點的數據,這里設置為falseregister-with-eureka: false # 表示是否將自己注冊到Eureka Server,默認為true.由于當前應用就是Eureka Server,故而設置為false.service-url:# 設置與Eureka Server的地址,查詢服務和注冊服務都需要依賴這個地址.默認是http://localhost:8761/eureka/;多個地址可使用','風格.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/可以看到,上面的配置eureka的hostname是localhost,這個是屬于服務器端的配置,但還配置了client,里面配置的內容是不把自己作為服務注冊到Eureka Server服務查詢中,這個配置會讓我們看不懂,為什么服務器查詢要配置是否把自己注冊進服務查詢呢?這樣配置的確有點奇怪,調查發現,eureka中的服務端也是個客戶端,這樣做的目的是為了讓服務端也可以互相注冊 , 實現高可用 , 但這樣的配置模式,確實很容易讓人誤解,不過既然已經使用了eureka,我們只能死記硬背了 。
PS:具體可以搜索org.springframework.cloud.netflix.eureka. EurekaClientConfigBean來查找相關屬性如何配置 。
配置好EurekaServer后,我們使用IDEA調試項目,然后在瀏覽器輸入:http://localhost:5180/,EurekaServer運行成功,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
創建普通服務并注冊到服務查詢中心——EurekaClient
下面我們創建一個WebApi , 一個使用了EurekaClient的WebApi , 項目會通過EurekaClient 將當前項目注冊到服務查詢中心里,如下個圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
點擊下一步,然后這次我們選擇SpringCloudDiscovery—Eureka Discovery Client,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
項目創建成功后,然后我們還是找到入口文件,為KibaApplication類加上@EnableEurekaClient注解,如下圖:
一個C#開發者學習SpringCloud搭建微服務的心路歷程

文章插圖
然后修改application.properties為application.yml,編寫代碼如下:
# 啟動端口server:port: 5181?spring:application:name: eureka-kiba# eureka客戶端配置,配置要注冊的服務查詢中心eureka:client:service-url:defaultZone: http://localhost:5180/eureka # 指定服務注冊中心

推薦閱讀