該專案通過自動配置為Spring Boot應用程式提供Netflix OSS整合,並繫結到Spring環境和其他Spring程式設計模型成語。通過幾個簡單的註釋,您可以快速啟用和配置應用程式中的常見模式,並通過經過測試的Netflix元件構建大型分散式系統。提供的模式包括服務發現(Eureka),斷路器(Hystrix),智慧路由(Zuul)和客戶端負載平衡(Ribbon)。Spring Cloud大型企業分散式微服務雲架構原始碼請加一七九一七四三三八零
服務發現:Eureka客戶端
服務發現是基於微服務架構的關鍵原則之一。嘗試配置每個客戶端或某種形式的約定可能非常困難,可以非常脆弱。Netflix服務發現伺服器和客戶端是Eureka。可以將伺服器配置和部署為高可用性,每個伺服器將註冊服務的狀態複製到其他伺服器。
如何包含Eureka客戶端
要在您的專案中包含Eureka客戶端,請使用組org.springframework.cloud
和工件ID spring-cloud-starter-eureka
的啟動器。有關使用當前的Spring Cloud釋出列表設定構建系統的詳細資訊。
註冊Eureka
當客戶端註冊Eureka時,它提供關於自身的後設資料,例如主機和埠,健康指示符URL,主頁等。Eureka從屬於服務的每個例項接收心跳訊息。如果心跳失敗超過可配置的時間表,則通常將該例項從登錄檔中刪除。
示例eureka客戶端:
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableEurekaClient
@RestControllerpublic 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的預設值),那麼預設值將是正常的。