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)
利用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)
把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/
會看到服務已經被註冊
右上角的"Last 1000 SINCE STARTUP"按鍵可以看到部分的服務註冊跟取消的歷程
再把Fortune-Teller-UI跑起來
cd Samples/Discovery/src/AspDotNetCore/Fortune-Teller-UI
dotnet restore --configfile nuget.configdotnet run -f netcoreapp2.0 --server.urls http://:5555
都成功的話會在http://localhost:5555 上顯示隨機抽選的句子