iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 17
0
Software Development

.Net微服務輕旅行30天系列 第 17

Day 17 Steeltoe OSS提供的Service Registry and Discovery (1)

  • 分享至 

  • xImage
  •  

Eureka!

Eureka是Netflix開源中專案的一環, 除了服務發現註冊外,還有提供負載平衡跟服務存活狀態的監控(利用heartbeat mechanism心跳機制)
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

ps:題外話 wiki上的Eureka典故,這名稱用來做服務發現相當的貼切
https://zh.wikipedia.org/wiki/%E5%B0%A4%E9%87%8C%E5%8D%A1_(%E8%AF%8D%E8%AF%AD)

前面的文章有提過服務註冊跟服務發現這兩個東西,同時還簡易的實現了一下服務註冊,今天要來看一下在.Net裡利用Eureka來做服務註冊以及發現。Steeltoe提供了基於Netflix Eureka的.Net Client,讓我們可以輕易在.Net裡面利用Eureka而不需要接觸java的code

大概的架構圖如下,服務啟動時註冊到Eureka去,而其他服務可以從Eureka中依據條件讀取到要呼叫服務的資料
https://github.com/Netflix/eureka/raw/master/images/eureka_architecture.png
(https://github.com/Netflix/eureka/raw/master/images/eureka_architecture.png)

凡事先從run sample code開始

利用localhost的Eureka server來了解一下
從這個步驟開始 http://steeltoe.io/docs/steeltoe-discovery/#1-0-netflix-eureka

先裝Eureka(預設是http://localhost:8761/)

git clone https://github.com/spring-cloud-samples/eureka.git
cd eureka
mvnw spring-boot:run

取得Steeltoe的Sample(這邊要看的sample是Samples\Discovery)

git clone https://github.com/SteeltoeOSS/Samples.git

把Fortune-Teller-Service跑起來

cd Samples/Discovery/src/AspDotNetCore/Fortune-Teller-Service
dotnet restore --configfile nuget.config
dotnet run -f netcoreapp2.0 --server.urls http://*:5000

成功啟用後前往Eureka預設的http://localhost:8761/
會看到服務已經被註冊
https://ithelp.ithome.com.tw/upload/images/20180105/20107867DnOb8xxDMv.png
右上角的"Last 1000 SINCE STARTUP"按鍵可以看到部分的服務註冊跟取消的歷程
https://ithelp.ithome.com.tw/upload/images/20180105/20107867CwBs3bJ1zX.png

再把Fortune-Teller-UI跑起來

cd Samples/Discovery/src/AspDotNetCore/Fortune-Teller-UI
dotnet restore --configfile nuget.config

dotnet run -f netcoreapp2.0 --server.urls http://:5555
都成功的話會在http://localhost:5555 上顯示隨機抽選的句子
https://ithelp.ithome.com.tw/upload/images/20180105/20107867WLYC1Htoaq.png


上一篇
Day 16 Steeltoe OSS提供的Config Server(3)
下一篇
Day 18 Steeltoe OSS提供的Service Registry and Discovery (2)
系列文
.Net微服務輕旅行30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言