Spring Cloud 簡單入門教程 之 Hystrix (七)

Netflix的創造了一個調用的庫Hystrix實現了斷路器圖案。在微服務架構中,通常有多層服務調用。較低級別的服務中的服務故障可能導致用戶級聯故障。當對特定服務的呼叫達到一定閾值時(Hystrix中的默認值爲5秒內的20次故障),電路打開,不進行通話。在錯誤和開路的情況下,開發人員可以提供後備。開放式電路會停止級聯故障,並允許不必要的或失敗的服務時間來癒合。回退可以是另一個Hystrix保護的調用,靜態數據或一個正常的空值。回退可能被鏈接,所以第一個回退使得一些其他業務電話又回到靜態數據。
以上是Spring Cloud 對斷路器Hystrix客戶端的描述。官方文檔的圖片
這裏寫圖片描述
這裏寫圖片描述
對sevice-ribbon工程進行改造,pom文件添加依賴:

<!--spring-cloud-starter-hystrix的起步依賴-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
		</dependency>

在啓動類上加註解;
@EnableHystrix
@EnableHystrixDashboard
調用服務的地方加上註解:
@HystrixCommand(fallbackMethod = “hiServiceError”) hiServiceError是調用遠程服務出錯的時候回調的方法。HelloService 添加方法:
public String hiServiceError(String name){
return name+“調用hiService失敗”;
}
這裏寫圖片描述
啓動服務註冊中心,啓動service-ribbon,瀏覽器訪問localhost:8761
這裏寫圖片描述
可以看到只有一個消費者註冊到註冊中心。瀏覽器訪問http://localhost:8764/hi?name=mms
這裏寫圖片描述
能調用到遠程服務。
斷路器:Hystrix儀表板
Hystrix的主要優點之一是它收集關於每個HystrixCommand的一套指標。Hystrix儀表板以有效的方式顯示每個斷路器的運行狀況。
前面已經將在pom添加了儀表板的起步依賴,也在啓動類添加了相應的註解。瀏覽器訪問http://localhost:8764/hystrix
這裏寫圖片描述
在輸入框輸入http://localhost:8764/hystrix.stream,Tiitle輸入任意字符,點擊Montor Stream
這裏寫圖片描述
可以看到hiService的是健康狀態。
在Feign中使用斷路由器:
同樣在pom文件中添加添加依賴,application配置文件中添加配置feign.hystrix.enabled= true,在啓動類上添加註解,@EnableHystrixDashboard,@EnableCircuitBreaker新建SayHiServiceFallBack實現SayHiService,重新sayHi方法,使用Spring注入。
/**

  • @author heyaunjun
  • @date 2017-11-6 11:02
    */
    @Component
    public class SayHiServiceFallBack implements SayHiService {
    @Override
    public String sayHi(String name) {
    return name+“feign調用服務失敗”;
    }
    }
    SayHiService接口添加註解@FeignClient(value = “service-hi”,fallback = SayHiServiceFallBack.class).
    驗證方法和ribbon的驗證方式一樣。
    未解決的問題:feign在使用斷路由器的儀表版時,訪問http://localhost:8764/hystrix會下載一個hystrix文件,文件大小時0kb。也無法看到服務的健康狀態。
    這裏寫圖片描述

各種IT書籍書目及下載鏈接
https://blog.csdn.net/dh1027/article/details/89327978

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章