Spring Cloud
Spring Cloud為開發者快速構建通用的分散式系統(例如:配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、一次性的Token、全域性鎖、領導者選舉、分散式會話、叢集狀態)提供工具。
這裡用的是最新版本Edgware
操作步驟
1、新建一個工程作為Eureka Server
建立完成後的pom.xml檔案是這樣的
接下來,執行一個Eureka Server
所以,最終這個工程看起來是這樣的
啟動以後,在瀏覽器中輸入http://localhost:8761/就能看的如下介面
2、接下來,再建一個工程作為Eureka Client。唯一不同的是artifact id換成spring-cloud-starter-netflix-eureka-client
接下都是翻譯自官方文件中第三部分Spring Cloud Netflix第11章部分小節
11.2 Registering with Eureka
當客戶端用Eureka註冊的時候,它提供自身的後設資料,比如主機、埠、url、主頁地址等等。Eureka接收某個服務下所有例項的心跳訊息。如果心跳檢測失敗(超過配置的超時時間)了,那麼這個例項通常會被從註冊列表中刪除。
只要在你的應用的classpath下有spring-cloud-starter-netflix-eureka-client,那麼將會自動註冊到Eureka Server。當然需要配置Eureka Server的地址。例如:
預設的應用的名稱、虛擬主機和非安全的埠分別用${spring.application.name}、${spring.application.name}和${server.port}代表。
如果不想讓Eureka發現客戶端,你可以設定eureka.client.enabled的值為false
於是
觀察兩邊的啟動日誌
此時再看http://localhost:8761/
11.4 Status Page and Health Indicator
Eureka例項的狀態頁面和健康指示器預設情況下分別用"/info"和"/health"代表。當然這個是可以改的。預設就像下面這樣
11.6 Eureka’s Health Checks
預設情況下,Eureka用客戶端心跳檢測來判斷一個客戶端是否活著。除非有特殊情況,否則這個客戶端不會傳播這個應用的健康檢查狀態給每個Spring Boot監控器。這就意味著在註冊成功以後,將總是宣稱這個應用是"UP"狀態。這個行為可以被Eureka健康檢查改變,這種改變的結果就是傳播應用的狀態給Eureka
注意:eureka.client.healthcheck.enabled=true只應該寫在application.yml中。
11.7.3 Changing the Eureka Instance ID
預設的例項ID的格式是這樣的:${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}}
當然,可以使用eureka.instance.instanceId覆蓋這種預設的設定