第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Spring Cloud Hystrix Spring Cloud Hystrix Hystrix 服務(wù)容錯與服務(wù)降級概念講解與實操

Hystrix 服務(wù)容錯與服務(wù)降級概念講解與實操

1. 前言

在之前的幾篇小節(jié)中,我們對 Hystrix 的集成和常用的配置項做了詳細的講解,這些內(nèi)容是學(xué)習(xí) Hystrix 基礎(chǔ)中的基礎(chǔ),在介紹完這些基礎(chǔ)內(nèi)容之后,接著我們需要來對 Hystrix 所提供的各種特性進行介紹,這也是為什么在 Spring Cloud 微服務(wù)框架中使用 Hystrix 的原因。

本節(jié)會對 Hystrix 中首當(dāng)其沖的特性 - 服務(wù)容錯與服務(wù)降級,進行詳細的介紹,包括基本概念的解釋以及在 Spring Cloud 中實現(xiàn)服務(wù)容錯與服務(wù)降級。

本節(jié)主要內(nèi)容:

  • Hystrix 服務(wù)容錯與服務(wù)降級概念剖析;

  • Hystrix 服務(wù)容錯與降級實操。

2. Hystrix 服務(wù)容錯與服務(wù)降級概念剖析

在介紹 Hystrix 服務(wù)容錯與服務(wù)降級概念之前,我們先拋開 Hystrix 來了解一下傳統(tǒng)意義上所說的容錯指的是什么意思。

針對容錯這一名詞,對不同的行業(yè)領(lǐng)域有不同的意思,針對于計算機科學(xué)與技術(shù)等計算機相關(guān)專業(yè)而言,容錯指的是:當(dāng)系統(tǒng)在運行時,有錯誤被激活的情況下,仍能保證不間斷提供服務(wù)的方法和技術(shù)。 通過這段話可以看出,對計算機相關(guān)專業(yè)而言,容錯指的是一種方法或技術(shù)。

Tips: 這里強調(diào)一點,容錯指的是一種方法或技術(shù),而不是指一個方法或技術(shù),具體含義我們繼續(xù)往下看。

在明白了什么是傳統(tǒng)意義上的容錯之后,我們回到 Hystrix 中,對于服務(wù)容錯而言,我們可以這樣定義,即:在我們的系統(tǒng)正常運行時,當(dāng)系統(tǒng)中出現(xiàn)了可以直接影響系統(tǒng)正常運行的錯誤時,仍能夠保證服務(wù)不間斷的正常運行的一種技術(shù),我們把這種技術(shù)稱為服務(wù)容錯。

我們都知道,服務(wù)容錯是 Hystrix 主要提供的特性,那么,如果我們想實現(xiàn)這一特性,我們需要通過什么方法來實現(xiàn)呢,或者說通過采用哪種方法可以實現(xiàn)服務(wù)容錯呢?

在 Hystrix 中,我們需要通過 Hystrix 提供的服務(wù)降級策略來實現(xiàn)服務(wù)容錯,這是 Hystrix 默認提供的實現(xiàn)方法,同時也只有通過這種方法可以來實現(xiàn) Hystrix 的服務(wù)容錯機制。

在理解了什么是服務(wù)容錯之后,接著我們來看一下什么是服務(wù)降級。

Tips:
1. 在微服務(wù)中,服務(wù)容錯指的就是當(dāng)一個服務(wù)發(fā)生故障時,通過一定的手段或者技術(shù),來保證該故障不會影響系統(tǒng)正常的運行。而這種技術(shù),在 Hystrix 中指的就是服務(wù)降級,即通過服務(wù)降級來實現(xiàn)服務(wù)容錯。
2. 我們可以這樣理解,服務(wù)容錯是一種技術(shù)實現(xiàn)目標(biāo),而服務(wù)降級則是實現(xiàn)服務(wù)容錯的一種方法或技術(shù)手段。

在 Hystrix 中,從某種意義上講,服務(wù)降級其實就是服務(wù)容錯,只不過換了一種叫法而已,其本質(zhì)是一成不變的,我們理解了什么是服務(wù)容錯,也就理解了什么是服務(wù)降級了。

從上述內(nèi)容中,我們可以知道,服務(wù)降級是實現(xiàn)服務(wù)容錯的一種方法或技術(shù)手段,那么,在 Hystrix 中實現(xiàn)服務(wù)容錯都有哪些方法或技術(shù)手段呢,接下來讓我們結(jié)合具體的代碼實操一起來看一下。

3. Hystrix 服務(wù)容錯與降級實操

3.1 通過配置 Hystrix 注解實現(xiàn)

要想在我們的項目中使用 Hystrix 所提供的服務(wù)容錯與服務(wù)降級特性,需要我們首先在我們的項目中啟用 Hystrix 功能,具體代碼如下:

@SpringBootApplication
@EnableHystrix
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

代碼解釋:

第 2 行,我們在項目的啟動類的上方,添加了 EnableHystrix 注解,表示我們的項目需要使用 Hystrix 功能服務(wù)。

在將 Hystrix 功能服務(wù)啟用之后,我們需要在應(yīng)用服務(wù)容錯與服務(wù)降級的具體類中,去聲明相應(yīng)的注解,具體代碼如下:

@RequestMapping(value = "hello", method = RequestMethod.GET)
@ResponseBody
@HystrixCommand(fallbackMethod = "helloFail")
public String hello() throws InterruptedException {
    Thread.sleep(1000);
    return "helloWorld";
}

public String helloFail() {
    return "helloFailed";
}

代碼解釋:

第 3 行,我們在具體方法的上方,添加了 HystrixCommand 注解,表示該方法應(yīng)用了 Hystrix 的配置參數(shù),接著,我們在該注解中,引入了 fallbackMethod 屬性,其值是用來指定當(dāng) hello 方法不能正確響應(yīng)時所返回的錯誤處理方法,這里指向了 helloFail 方法。

Tips:
1. 當(dāng)我們配置完 HystrixCommand 注解的 fallbackMethod 屬性之后,就表明我們已經(jīng)成功配置好了 Hystrix 中的服務(wù)容錯與服務(wù)降級特性,就可以正常往下開展我們的業(yè)務(wù)開發(fā)工作了;
2. fallbackMethod 屬性就是用來配置 Hystrix 服務(wù)容錯與服務(wù)降級的屬性,它沒有其他額外的用途,在實際工作中,我們經(jīng)常會用到該屬性。

3.2 通過引入 Open Feign ,配合 Hystrix 實現(xiàn)

此種實現(xiàn)方式,需要在項目中引入 Open Feign 遠程服務(wù)調(diào)用中間件,并且要將該中間件集成到 Hystrix 中才能實現(xiàn)服務(wù)容錯與降級,由于我們的課程是針對與 Hystrix 的,所以,在這里我只是簡單提出一下,讓各位同學(xué)知道,還有一種這樣的實現(xiàn)方案,后續(xù)我們在介紹 Open Feign 再做詳細的介紹。

4. 視頻演示

5. 小結(jié)

本節(jié)內(nèi)容概覽

本小節(jié)為大家介紹了什么是服務(wù)容錯、什么是服務(wù)降級,以及對服務(wù)容錯和服務(wù)降級的代碼實操,希望各位同學(xué)通過學(xué)習(xí)本節(jié)的內(nèi)容,可以對服務(wù)容錯與服務(wù)降級有自己的理解和看法,這樣,在實際的工作中,我們在管理微服務(wù)項目時,才能得心應(yīng)手,在遇到問題時,才能從容應(yīng)對。