spring cloud實戰(zhàn):3-熔斷器Hystrix

如果您認為對你有幫助滴铅,請點個贊!

準備工作

請先按照 spring cloud實戰(zhàn):1- 服務(wù)注冊中心Eureka 完成準備工作司蔬,具體包括:

  • Eureka服務(wù)(服務(wù)注冊中心):eureka_server
  • 服務(wù)提供方:provider
  • 服務(wù)消費者:consumer
    三者的關(guān)系是:consumer會通過服務(wù)注冊中心調(diào)用外部服務(wù)provider

熔斷器原理概述

熔斷器是服務(wù)消費者(consumer)與服務(wù)提供者(provider
)之間的一個開關(guān)它掂,當此開關(guān)關(guān)閉時(即沒有熔斷),consumer的調(diào)用請求會發(fā)給provider處理晶密。

如果請求調(diào)用失敗的比例達到閥值時(表示provider
負載過高),熔斷器會自動打開模她,這樣consumer人請求就不會發(fā)給provider處理稻艰,避免provider負載過高。

熔斷器關(guān)閉達到指定時間后侈净,會半開尊勿,即轉(zhuǎn)發(fā)一個請求,若成功則關(guān)閉熔斷器畜侦,若失敗則繼續(xù)打開元扔。

實戰(zhàn)

本實戰(zhàn)是在 spring cloud實戰(zhàn):1- 服務(wù)注冊中心Eureka 的基礎(chǔ)上進行。

由于熔斷器是通過對服務(wù)調(diào)用的成功率旋膳,決定是否熔斷摇展,實際上是對后端服務(wù)提供過載保護。但熔斷器的控制邏輯是在調(diào)用端溺忧。因此要啟用熔斷器咏连,需要在consumer端進行處理。

因此需要對 eureka _consumer 項目模塊進行修改鲁森。

啟用熔斷器

在application.properties文件中祟滴,啟用熔斷器,配置如下:

### 啟用熔斷器
feign.hystrix.enabled=true

fallback實現(xiàn)類

spring cloud實戰(zhàn):1- 服務(wù)注冊中心Eureka中歌溉,我們定義了 **** 接口垄懂,但并未實現(xiàn)。
在這里我們將實現(xiàn)該接口痛垛,該實現(xiàn)類將在服務(wù)端熔斷后被自動調(diào)用
新建FeignSayHelloFallback.java類草慧,并實現(xiàn)IFeignSayHello接口,代碼如下:

package com.example.eureka.consumer;

import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;

@Component
public class FeignSayHelloFallback implements IFeignSayHello {
    @Override
    public String sayHello(@RequestParam(value = "name") String name) {
        return "熔斷保護已開啟匙头!";
    }
}

啟用fallback

在IFeignSayHello接口中漫谷,添加fallback屬性指定fallback實現(xiàn)類

//在FeignClient注解中,添加fallback屬性指定fallback實現(xiàn)類
@FeignClient(name = "spring-cloud-produce-say-hello",fallback = FeignSayHelloFallback.class)  

測試熔斷

將 eureka_server蹂析、eureka_provider舔示、eureka_consumer都啟動起來碟婆。這時用瀏覽器訪問consumer的REST服務(wù),可以正常運行惕稻。
然后我們將eureka_provider人工停止竖共,再次訪問consumer的REST服務(wù),這時服務(wù)會被熔斷俺祠,界面如下:


熔斷fallback

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末公给,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蜘渣,更是在濱河造成了極大的恐慌淌铐,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宋梧,死亡現(xiàn)場離奇詭異匣沼,居然都是意外死亡狰挡,警方通過查閱死者的電腦和手機捂龄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來加叁,“玉大人倦沧,你說我怎么就攤上這事∷埃” “怎么了展融?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豫柬。 經(jīng)常有香客問我告希,道長,這世上最難降的妖魔是什么烧给? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任燕偶,我火速辦了婚禮,結(jié)果婚禮上础嫡,老公的妹妹穿的比我還像新娘指么。我一直安慰自己,他們只是感情好榴鼎,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布伯诬。 她就那樣靜靜地躺著,像睡著了一般巫财。 火紅的嫁衣襯著肌膚如雪盗似。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天平项,我揣著相機與錄音桥言,去河邊找鬼萌踱。 笑死,一個胖子當著我的面吹牛号阿,可吹牛的內(nèi)容都是我干的并鸵。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼扔涧,長吁一口氣:“原來是場噩夢啊……” “哼园担!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枯夜,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤弯汰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后湖雹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咏闪,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年摔吏,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸽嫂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡征讲,死狀恐怖据某,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诗箍,我是刑警寧澤癣籽,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站滤祖,受9級特大地震影響筷狼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匠童,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一埂材、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俏让,春花似錦楞遏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勒奇,卻和暖如春预鬓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赊颠。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工格二, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劈彪,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓顶猜,卻偏偏與公主長得像沧奴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子长窄,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容