溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hystrix中如何使用進行熔斷處理

發(fā)布時間:2021-12-02 15:16:57 來源:億速云 閱讀:247 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了Hystrix中如何使用進行熔斷處理 ,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

前言

熔斷處理什么呢?在微服務項目中,有很多的服務,在服務消費者調用服務提供者的時候可能會出現(xiàn)網(wǎng)絡異常或者請求超時或者阻塞等等一系列問題,不過不進行處理的話,就可能導致,長時間等待,進程阻塞,最終導致系統(tǒng)癱瘓。

所以就有了熔斷處理,當服務提供者的接口不能訪問或者異常異常時,進行降級處理,服務消費者能夠正常的處理返回特定是數(shù)據(jù)。從而達到容災的目的。

看了一下Hystrix ,其實有很多東西,我們就先來看看Hystrix 的簡單使用,下面我們就直接使用Fegin 來實現(xiàn)一個簡單的熔斷處理的操作。

pom.xml

其實我們完全可以在上一節(jié)的ribbon-consumer 的基礎上來,我這里為了保持獨立性,所以copy 了一份ribbon-consumer 改成hystrix-consumer。pom文件引入fegin 的依賴

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

在主類中增加@EnableFeignClients,其實這里僅僅使用hystrix 的話,可以使用@EnableCircuitBreaker。Hystrix中如何使用進行熔斷處理

application.properties

配置文件中開啟熔斷處理,將feign.hystrix.enabled設置為tue

#開啟熔斷處理
feign.hystrix.enabled=true

fallback

重點來啦,我們上一節(jié)在HelloService 中調服務提供者的接口,所以要做熔斷處理的話,就需要在這里進行降級處理,就需要寫一個降級處理的方法,如果服務提供者的接口不通,就調用這個方法,返回給客戶端。所以我們在server層創(chuàng)建一個fallback 文件夾,在fallback 包下創(chuàng)建HelloServiceFallback類實現(xiàn) HelloService。內容如下:

@Component
public class HelloServiceFallback implements HelloService {
   @Override
   public String hello() {
       return "hello error";
   }

   @Override
   public String hello2(@RequestParam(value = "name") String name) {
       return "hello2 error";
   }

   @Override
   public String hello3(@RequestParam(value = "name") String name, @RequestParam(value = "age") String age) {
       return "hello3 error";
   }

   @Override
   public String hello4(@RequestBody Map<String, Object> parms) {
       return "hello4 error";
   }
}

注意給整個類加上@Component 注解,然后就是實現(xiàn)HelloService 中的方法啦。

然后我們需要在HelloService 中的@FeignClient 注解做修改

@FeignClient(name = "ribbon-provider",fallback = HelloServiceFallback.class)

name 用來指定服務提供者的服務名,fallback 用來指定降級處理的類。這里就是我們剛剛寫HelloServiceFallback。Hystrix中如何使用進行熔斷處理好了我們來啟動項目測試一下。啟動這三個項目,分別是注冊中心,服務提供者hystrix-consumer,服務消費者ribbon-provider-9004Hystrix中如何使用進行熔斷處理然后我們在界面輸入

http://localhost:9006/fegin

然后關閉服務提供者,再調接口試試。Hystrix中如何使用進行熔斷處理

可以看到服務提供者的接口斷掉之前和之后返回的結果是不一樣的。說明我們的熔斷處理是生效的啦。

上述內容就是Hystrix中如何使用進行熔斷處理 ,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI