Spring Cloud Netflix—斷路器:Hystrix客戶端

blingbling1發表於2018-03-02

Netflix的創造了一個呼叫的庫Hystrix實現了斷路器圖案。在微服務架構中,通常有多層服務呼叫。 HystrixGraph 圖1.微服務圖 較低階別的服務中的服務故障可能導致使用者級聯故障。當對特定服務的呼叫達到一定閾值時(Hystrix中的預設值為5秒內的20次故障),電路開啟,不進行通話。在錯誤和開路的情況下,開發人員可以提供後備。

HystrixFallback 圖2. Hystrix回退防止級聯故障 開放式電路會停止級聯故障,並允許不必要的或失敗的服務時間來癒合。回退可以是另一個Hystrix保護的呼叫,靜態資料或一個正常的空值。回退可能被連結,所以第一個回退使得一些其他業務電話又回到靜態資料。

如何加入Hystrix 要在專案中包含Hystrix,請使用組org.springframework.cloud和artifact id spring-cloud-starter-hystrix的啟動器。有關 使用當前的Spring Cloud釋出列表設定構建系統的詳細資訊,請參閱Spring Cloud專案頁面。

示例啟動應用程式:

@SpringBootApplication @EnableCircuitBreaker public class Application {

public static void main(String[] args) {
    new SpringApplicationBuilder(Application.class).web(true).run(args);
}
複製程式碼

}

@Component public class StoreIntegration {

@HystrixCommand(fallbackMethod = "defaultStores")
public Object getStores(Map<String, Object> parameters) {
    //do stuff that might fail
}

public Object defaultStores(Map<String, Object> parameters) {
    return /* something useful */;
}
複製程式碼

} @HystrixCommand由名為“javanica”的Netflix contrib庫提供 。Spring Cloud在連線到Hystrix斷路器的代理中使用該註釋自動包裝Spring bean。斷路器計算何時開啟和關閉電路,以及在發生故障時應該做什麼。

要配置@HystrixCommand,您可以使用commandProperties屬性列出@HystrixProperty註釋。請參閱 這裡 瞭解更多詳情。有關 可用屬性的詳細資訊,請參閱Hystrix維基。

Spring Cloud Netflix—斷路器:Hystrix客戶端
原始碼來源:http://minglisoft.cn/honghu/technology.html

相關文章