本節講解基於Eureka的服務發現。git
Eureka是Netflix開源的服務發現組件,自己是一個基於REST的服務,包含Server和Client兩部分,Spring Cloud將它集成在子項目Spring Cloud Netflix中。github
拓展閱讀spring
理解跟我學Spring Cloud(Finchley版)-04-服務註冊與服務發現-原理剖析 所講的服務發現原理後,咱們來編寫基於Eureka的服務發現——首先編寫一個Eureka Server,而後將前文的微服務都註冊到Eureka Server上。app
加依賴ide
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
加註解微服務
@SpringBootApplication @EnableEurekaServer public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
寫配置測試
server: port: 8761 eureka: client: # 是否要註冊到其餘Eureka Server實例 register-with-eureka: false # 是否要從其餘Eureka Server實例獲取數據 fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka/
TIPSfetch
這裏,你們可先不去探究registerWithEureka
以及fetchRegistry
到底是什麼鬼,筆者將在下一節爲你們揭曉。url
加依賴code
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
加註解
@SpringBootApplication public class ProviderUserApplication { public static void main(String[] args) { SpringApplication.run(ProviderUserApplication.class, args); } }
注意:早期的版本(Dalston及更早版本)還需在啓動類上添加註解@EnableDiscoveryClient
或@EnableEurekaClient
,從Edgware開始,該註解可省略。
添加配置:
spring: application: # 指定註冊到eureka server上的服務名稱,對於電影微服務,本系列將名稱設爲microservice-consumer-movie name: microservice-provider-user eureka: client: service-url: # 指定eureka server通訊地址,注意/eureka/小尾巴不能少 defaultZone: http://localhost:8761/eureka/ instance: # 是否註冊IP到eureka server,如不指定或設爲false,那就會註冊主機名到eureka server prefer-ip-address: true
依次啓動Eureka Server以及用戶微服務、電影微服務;
訪問http://localhost:8761
可觀察到相似以下界面:
將用戶微服務中止,可看到Eureka Server首頁變成相似以下界面:
http://www.itmuch.com/spring-cloud/finchley-5/