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

首頁 慕課教程 Spring Cloud Hystrix Spring Cloud Hystrix 實(shí)際業(yè)務(wù)場(chǎng)景下服務(wù)容錯(cuò)與服務(wù)降級(jí)實(shí)戰(zhàn)

實(shí)際業(yè)務(wù)場(chǎng)景下服務(wù)容錯(cuò)與服務(wù)降級(jí)實(shí)戰(zhàn)

1. 前言

在上一章中,我們對(duì) Hystrix 中的所有的微服務(wù)治理特性都做了學(xué)習(xí)和了解,同時(shí)我也通過 demo 樣例的形式,來對(duì)每一個(gè)特性都做了代碼實(shí)現(xiàn),可是這些代碼并不是我們真實(shí)業(yè)務(wù)場(chǎng)景下的代碼,只能用來學(xué)習(xí)特性所用。

為了將我們所學(xué)習(xí)和了解到的微服務(wù)治理特性應(yīng)用于真實(shí)項(xiàng)目中,于是規(guī)劃了 4 節(jié)在實(shí)際業(yè)務(wù)場(chǎng)景下 Hystrix 微服務(wù)治理特性的應(yīng)用內(nèi)容,希望可以通過這 4 節(jié)的介紹,大家可以了解到如何在實(shí)際項(xiàng)目中去應(yīng)用這些特性。

在本節(jié)中,我將為大家介紹真實(shí)業(yè)務(wù)場(chǎng)景下,服務(wù)容錯(cuò)與降級(jí)的應(yīng)用方法,及代碼實(shí)現(xiàn)。

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

  • 服務(wù)容錯(cuò)與降級(jí)真實(shí)業(yè)務(wù)場(chǎng)景描述;

  • 業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)思路分析與實(shí)操。

2. 服務(wù)容錯(cuò)與降級(jí)真實(shí)業(yè)務(wù)場(chǎng)景描述

業(yè)務(wù)場(chǎng)景描述

有這樣一個(gè)真實(shí)的業(yè)務(wù)場(chǎng)景:在某大廠的用戶業(yè)務(wù)模塊下,存在一個(gè)用戶注冊(cè)服務(wù)接口,在正常流量下,請(qǐng)求該用戶注冊(cè)服務(wù)接口,不會(huì)出現(xiàn)任何問題,業(yè)務(wù)可以正常開展。但是,在遇到某活動(dòng)舉辦時(shí),當(dāng)再次請(qǐng)求該用戶注冊(cè)服務(wù)接口時(shí),該服務(wù)接口就會(huì)報(bào)服務(wù)處理異常,我們需要做的就是用服務(wù)容錯(cuò)與降級(jí)的概念來解決這種異?,F(xiàn)象。

問題原因分析

在解決問題之前,我們首先來分析一下這種問題產(chǎn)生的原因。

在遇到某活動(dòng)舉辦時(shí),當(dāng)再次請(qǐng)求該用戶注冊(cè)服務(wù)接口時(shí),由于此時(shí)的請(qǐng)求流量較正常情況下的多,即此時(shí)的請(qǐng)求流量可能是正常情況下請(qǐng)求流量的幾倍,甚至更多,我們的服務(wù)在處理請(qǐng)求時(shí),一方面出現(xiàn)了服務(wù)處理堆積的現(xiàn)象;另一方面,當(dāng)我們的服務(wù)器或數(shù)據(jù)庫不能繼續(xù)處理更多的請(qǐng)求時(shí),沒有給用戶一個(gè)合理地提示,直接讓程序報(bào)出了異常。

以上兩方面就是產(chǎn)生該異常的原因,第一方面我們使用服務(wù)容錯(cuò)與降級(jí)無法解決,只能使用高并發(fā)相關(guān)的知識(shí),通過限流來解決,但是第二方面我們可以使用服務(wù)容錯(cuò)與降級(jí)的概念來解決,接下來就讓我們看一下如何解決吧。

3. 業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)思路分析與實(shí)操

實(shí)現(xiàn)思路分析

鑒于上述業(yè)務(wù)場(chǎng)景中所描述的問題,我們可以在該用戶注冊(cè)服務(wù)上,通過添加 Hystrix 的服務(wù)容錯(cuò)與降級(jí)的注解,再結(jié)合相關(guān)配置項(xiàng)來實(shí)現(xiàn)該用戶注冊(cè)服務(wù)的容錯(cuò)與降級(jí)。

在為該用戶注冊(cè)服務(wù)配置了容錯(cuò)與降級(jí)之后,當(dāng)在大流量情況下,如果我們的服務(wù)器或數(shù)據(jù)庫不能繼續(xù)處理更多的請(qǐng)求時(shí),此時(shí)會(huì)給用戶一個(gè)提示,并且拒絕處理后續(xù)的服務(wù)請(qǐng)求。

由于我們的本套課程不涉及 Open Feign ,所以這里為大家介紹以注解形式配置服務(wù)容錯(cuò)與降級(jí)。

實(shí)操

@RequestMapping("register.do")
@ResponseBody
@HystrixCommand(fallbackMethod = "register_failed")
public CommonResponse<String> register(@RequestBody User user){
    return userService.register(user);
}
    
public CommonResponse<String> register_failed(){
    return  CommonResponse.errorResponse("服務(wù)拒絕處理,請(qǐng)聯(lián)系系統(tǒng)管理員");
}

代碼解釋

第 3 行,我們使用 HystrixCommand 注解的 fallbackMethod 屬性,來為用戶注冊(cè)服務(wù)添加容錯(cuò)與降級(jí),此時(shí),當(dāng)該服務(wù)出現(xiàn)上述業(yè)務(wù)場(chǎng)景問題時(shí),就會(huì)返回 register_failed 方法所對(duì)應(yīng)的響應(yīng),并且后續(xù)服務(wù)不會(huì)繼續(xù)處理。

Tips:
1. 配置服務(wù)容錯(cuò)與降級(jí)時(shí),首先需要清楚對(duì)應(yīng)服務(wù)下都可能會(huì)出現(xiàn)哪些問題,出現(xiàn)這些問題的產(chǎn)生原因主要是什么,我們只有在清楚了這些錯(cuò)誤產(chǎn)生的原因之后,我們才能合理地去編寫服務(wù)容錯(cuò)與降級(jí)時(shí)的響應(yīng)結(jié)果,這點(diǎn)同學(xué)們需要注意。
2. 在實(shí)際項(xiàng)目開發(fā)中,基本上每個(gè)承載大流量的接口服務(wù)都會(huì)配置服務(wù)容錯(cuò)與降級(jí),這種配置方式可能在微服務(wù)項(xiàng)目中已經(jīng)成為了一種習(xí)慣。

4. 小結(jié)

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

本小節(jié)以一個(gè)真實(shí)業(yè)務(wù)場(chǎng)景下的服務(wù),為大家介紹了如何在真實(shí)業(yè)務(wù)場(chǎng)景下配置 Hystrix 的服務(wù)容錯(cuò)與降級(jí),并且做了代碼實(shí)操,針對(duì)容易出現(xiàn)問題的地方,也做了注意事項(xiàng)的補(bǔ)充,希望同學(xué)們可以對(duì)真實(shí)業(yè)務(wù)場(chǎng)景,服務(wù)容錯(cuò)與降級(jí)的應(yīng)用方法有所了解。