Hystrix入門教程

Hystrix入門教程

一·什么是Hystrix毁菱?Hystrix有什么作用宪迟?使用Hystrix有哪些適用場景

Hystrix是springCloud的組件之一,Hystrix 可以讓我們在分布式系統(tǒng)中對服務間的調(diào)用進行控制
加入一些調(diào)用延遲或者依賴故障的容錯機制。Hystrix 通過將依賴服務進行資源隔離
進而阻止某個依賴服務出現(xiàn)故障時在整個系統(tǒng)所有的依賴服務調(diào)用中進行蔓延轧房;
同時Hystrix 還提供故障時的 fallback 降級機制先誉。
通過這些方法幫助我們提升分布式系統(tǒng)的可用性和穩(wěn)定性湿刽。
在高并發(fā)訪問下,這些依賴的穩(wěn)定性與否對系統(tǒng)的影響非常大,
但是依賴有很多不可控問題:如網(wǎng)絡連接緩慢,資源繁忙褐耳,暫時不可用诈闺,服務脫機等.

二·導入Hystrix相關(guān)依賴

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

三·在啟動類上加上@EnableHystrix

@SpringBootApplication
@EnableFeignClients
@EnableApolloConfig
@ComponentScan(basePackages = "com.demo.Hystrix")
@EnableHystrix
public class ApiApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {



        SpringApplication.run(ApiApplication.class, args);

    }

四·在需要限流的方法中使用Hystrix

        @HystrixCommand(groupKey="test-provider",
            threadPoolKey="test-provider",
            threadPoolProperties = {
            @HystrixProperty(name = "coreSize", value = "20"),//線程池大小
            @HystrixProperty(name = "maximumSize", value = "30"),//最大線程池大小
            @HystrixProperty(name = "maxQueueSize", value = "20"),//最大隊列長度
            @HystrixProperty(name =  "keepAliveTimeMinutes", value = "2")//線程存活時間
            },commandProperties = {
            @HystrixProperty(name = "execution.isolation.strategy",value = "THREAD"),
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "60000" ),
            //此處有坑,若中斷時間不設置铃芦,上面所有參數(shù)都可能失效
            @HystrixProperty(name = "execution.isolation.thread.interruptOnTimeout",value = "300000" )
             },
             //fallbackMethod必須重寫雅镊,否則直接進入fallback方法中!H凶摇H逝搿!_只ⅰ卓缰!
             //此處的testfallback,為第五步中重寫的方法@峡汀A欧埂!k逝椤w⑼摇!
            fallbackMethod = "testfallback")

    @ApiOperation(value = "Hystrix測試接口")
    @PostMapping("/testHystrix")
    @Log(value = "Hystrix測試接口")
    public DefaultResponse<orderResponse> testHystrix(@RequestBody orderRequestVO req) {
        //
        ......
    }

五·重寫fallback方法

     public DefaultResponse<Response> testfallback(HttpServletRequest request, HttpServletResponse response, @RequestBody OrderReq req) {
        DefaultResponse defaultResp = new DefaultResponse();
        defaultResp.setCode(Integer.parseInt(ServiceStatus.RankFAIL.getCode()));
        defaultResp.setMessage("系統(tǒng)繁忙尉间,請稍后再試");
        return defaultResp;
    }

六· 使用總結(jié)偿乖,此處介紹三個使用過程中的三個大坑

1.必須設置中斷時間,若不設置所有參數(shù)都可能失效
2.第四步中的@HystrixCommand等注解只能在service層中使用哲嘲,在controller中使用贪薪,hystrix的限流作用會失效
3.必須重寫fallbackMethod的fallback方法,不重寫的話默認直接進入fallback方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眠副,一起剝皮案震驚了整個濱河市画切,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囱怕,老刑警劉巖霍弹,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娃弓,居然都是意外死亡典格,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門台丛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耍缴,“玉大人,你說我怎么就攤上這事》牢耍” “怎么了变汪?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長本鸣。 經(jīng)常有香客問我疫衩,道長,這世上最難降的妖魔是什么荣德? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任闷煤,我火速辦了婚禮,結(jié)果婚禮上涮瞻,老公的妹妹穿的比我還像新娘鲤拿。我一直安慰自己,他們只是感情好署咽,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布近顷。 她就那樣靜靜地躺著,像睡著了一般宁否。 火紅的嫁衣襯著肌膚如雪窒升。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天慕匠,我揣著相機與錄音饱须,去河邊找鬼。 笑死台谊,一個胖子當著我的面吹牛蓉媳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锅铅,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酪呻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盐须?” 一聲冷哼從身側(cè)響起玩荠,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贼邓,沒想到半個月后姨蟋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡立帖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悠砚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晓勇。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绑咱,到底是詐尸還是另有隱情绰筛,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布描融,位于F島的核電站铝噩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏窿克。R本人自食惡果不足惜骏庸,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望年叮。 院中可真熱鬧具被,春花似錦、人聲如沸只损。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跃惫。三九已至叮叹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爆存,已是汗流浹背蛉顽。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留终蒂,地道東北人蜂林。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像拇泣,于是被迫代替她去往敵國和親噪叙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355