Spring Cloud Netflix
服務發現:Eureka客戶端
服務發現是基於微服務架構的關鍵原則之一。嘗試配置每個客戶端或某種形式的約定可能非常困難,可以非常脆弱。Netflix服務發現服務器和客戶端是Eureka。可以將服務器配置和部署為高可用性,每個服務器將註冊服務的狀態復制到其他服務器。
如何包含Eureka客戶端
要在您的項目中包含Eureka客戶端,請使用組org.springframework.cloud和工件ID spring-cloud-starter-eureka的啟動器。有關使用當前的Spring Cloud發布列表設置構建系統的詳細信息。
註冊Eureka
當客戶端註冊Eureka時,它提供關於自身的元數據,例如主機和端口,健康指示符URL,主頁等。Eureka從屬於服務的每個實例接收心跳消息。如果心跳失敗超過可配置的時間表,則通常將該實例從註冊表中刪除。
示例eureka客戶端:
@Configuration@ComponentScan
br/>@ComponentScan
public class Application {
@RequestMapping("/")
public String home() {
return "Hello world";
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
(即完全正常的Spring Boot應用程序)。在這個例子中,我們明確地使用@EnableEurekaClient,但只有Eureka可用,你也可以使用@EnableDiscoveryClient。需要配置才能找到Eureka服務器。例:
application.yml
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
其中“defaultZone”是一個魔術字符串後備值,為任何不表示首選項的客戶端提供服務URL(即它是有用的默認值)。
從Environment獲取的默認應用程序名稱(服務ID),虛擬主機和非安全端口分別為${spring.application.name},${spring.application.name}和${server.port}。
@EnableEurekaClient將應用程序同時進入一個Eureka“實例”(即註冊自己)和一個“客戶端”(即它可以查詢註冊表以查找其他服務)。實例行為由eureka.instance.*配置鍵驅動,但是如果您確保您的應用程序具有spring.application.name(這是Eureka服務ID或VIP的默認值),那麽默認值將是正常的。
Spring Cloud Netflix