日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家 > 機(jī)電號 > 正文 申請入駐

「極簡springcloud」7,斷路器hystrix全面解析

在微服務(wù)場景中,通常會有很多層的服務(wù)調(diào)用。如果一個底層服務(wù)出現(xiàn)問題,故障會被向上傳播給用戶。我們需要一種機(jī)制,當(dāng)?shù)讓臃?wù)不可用時,可以阻斷故障的傳播。這就是斷路器的作用。他是系統(tǒng)服務(wù)穩(wěn)定性的最后一重保障。

在springcloud中斷路器組件就是hystrix。hystrix也是netflix套件的一部分。他的功能是,當(dāng)對某個服務(wù)的調(diào)用在一定的時間內(nèi)(默認(rèn)10s,由metrics.rollingstats.timeinmilliseconds配置),有超過一定次數(shù)(默認(rèn)20次,由circuitbreaker.requestvolumethreshold參數(shù)配置)并且失敗率超過一定值(默認(rèn)50%,由circuitbreaker.errorthresholdpercentage配置),該服務(wù)的斷路器會打開。返回一個由開發(fā)者設(shè)定的fallback

fallback可以是另一個由hystrix保護(hù)的服務(wù)調(diào)用,也可以是固定的值。fallback也可以設(shè)計成鏈?zhǔn)秸{(diào)用,先執(zhí)行某些邏輯,再返回fallback。

如何使用

netflix斷路器是安裝在服務(wù)消費者上。我們需要做的是在服務(wù)消費者上開啟斷路器并配置。

ribbon消費者:

1,引入依賴

2,打開開關(guān)

只需要在啟動類上加上@enablecircuitbreaker注解即可

3,在服務(wù)上加上fallback

4,測試,將服務(wù)提供者關(guān)掉

過一會,再將服務(wù)提供者啟動,可以觀察到,服務(wù)消費者自動恢復(fù)。

注意,配置的fallbackmethod方法必須與被@hystrixcommand注解的方法有意向的入?yún)⒑头祷刂?/p>

否則會報錯fallback method wasn't found: defaultfallback

在feign中使用

@enablefeignclients中已經(jīng)默認(rèn)打開了斷路器功能,所以這里的啟動類上不需要再加@enablecircuitbreaker注解

只需要在@feignclient中為fallback參數(shù)指定fallback方法

因為@feignclient注解的是接口,所以我們必須創(chuàng)建一個替代的類,就像mock一樣

創(chuàng)建一個實現(xiàn)了helloservice接口的類

最后一步

在配置文件application.yml中開啟斷路器

在很早的版本中,feign的斷路器默認(rèn)是開啟的。后來有人提issue,認(rèn)為這樣不方便。一旦使用feign就默認(rèn)使用了斷路器功能,導(dǎo)致了一些問題。后面從d版本開始斷路器就是默認(rèn)關(guān)閉的,需要手動打開。

可以看到和ribbon一樣的效果

注意事項

如果方法執(zhí)行需要用到thread local的屬性,這個屬性默認(rèn)是不能傳遞到fallback方法中的,因為在hystrix中, 主要通過線程池來實現(xiàn)資源隔離. 通常在使用的時候我們會根據(jù)調(diào)用的遠(yuǎn)程服務(wù)劃分出多個線程池. 例如調(diào)用產(chǎn)品服務(wù)的command放入a線程池, 調(diào)用賬戶服務(wù)的command放入b線程池. 這樣做的主要優(yōu)點是運(yùn)行環(huán)境被隔離開了. 這樣就算調(diào)用服務(wù)的代碼存在bug或者由于其他原因?qū)е伦约核诰€程池被耗盡時, 不會對系統(tǒng)的其他服務(wù)造成影響. 但是帶來的代價就是維護(hù)多個線程池會對系統(tǒng)帶來額外的性能開銷. 如果是對性能有嚴(yán)格要求而且確信自己調(diào)用服務(wù)的客戶端代碼不會出問題的話, 可以使用hystrix的信號模式(semaphores)來隔離資源.

你需要做如下配置

hystrix dashboard

既然斷路器可以檢測到服務(wù)的可用性,但是不夠直觀。hystrix dashboard可以提供一個監(jiān)控平臺,方便查看服務(wù)的可用性。

1,新建一個工程

因為dashboard是一個統(tǒng)一的斷路器監(jiān)控平臺,所以我們新建一個項目。不和現(xiàn)在服務(wù)消費者混在一起

2,引入依賴

3,注解啟動類

用@enablehystrixdashboard注解啟動類

啟動引用,訪問/hystrix

看上面的說明,我們可以知道,hystrix dashboard共支持三種不同的監(jiān)控方式

1,默認(rèn)的集群監(jiān)控:通過url:turbine-hostname:port/turbine.stream開啟,實現(xiàn)對默認(rèn)集群的監(jiān)控。

2,指定的集群監(jiān)控:通過url:turbine-hostname:port/turbine.stream?cluster=[clustername]開啟,實現(xiàn)對clustername集群的監(jiān)控。

3,單體應(yīng)用的監(jiān)控:通過url/hystrix-app:port/hystrix.stream開啟,實現(xiàn)對具體某個服務(wù)實例的監(jiān)控。

注意,這里有點問題,我們以前說過,從springboot2開始,actuator都是要在請求路徑加上/actuator,也就是hystrix-app:port/actuator/hystrix.stream才對

delay:控制服務(wù)器上輪詢監(jiān)控信息的延遲時間,默認(rèn)為2000毫秒,可以通過配置該屬性來降低客戶端的網(wǎng)絡(luò)和cpu消耗。

title:該參數(shù)可以展示合適的標(biāo)題。

監(jiān)控單個實例的服務(wù)

我們先測試第3個,監(jiān)控單個實例的服務(wù)。這個最好理解

對于robbon工程,在上面我們已經(jīng)加好了斷路器?,F(xiàn)在需要做的是引入actuator依賴

然后暴露hystrix.stream接口

啟動應(yīng)用。

現(xiàn)在我把windows10.microdone.cn:8781/actuator/hystrix.stream的服務(wù)填上,點擊monitor

多點擊幾次請求,可以看到請求的成功失敗情況被監(jiān)控起來了

對于feign

我們上面講過,feign自己已經(jīng)集成了斷路器。但是如果要暴露hystrix.stream接口,還是必須引入spring-cloud-starter-netflix-hystrix依賴,在啟動類上打上@enablecircuitbreaker注解注解

然后測試,和ribbon一樣的效果

turbine

turbine又是個什么概念?

turbine是netflix的一個獨立項目,單獨的一個springcloud實例的斷路器數(shù)據(jù)用處并不大,而且很麻煩,像上面我們有兩個消費者項目,就需要開兩個頁面查看,能不能把這些監(jiān)控都聚合在以前看呢?

當(dāng)然是可以的,所以才有了這個turbine項目

turbine的原理是,通過將將自己注冊到注冊中心,發(fā)現(xiàn)同一個注冊中心上的hystrix服務(wù),然后聚合數(shù)據(jù)。再通過暴露自己的端點,在儀表盤上進(jìn)行展示。

操作:

1,創(chuàng)建一個應(yīng)用

2,引入依賴:

啟動類注解:

@enableturbine

@enablediscoveryclient

yml配置:

啟動,我們現(xiàn)在8792端口起來了turbine

在到hystrix頁面,在監(jiān)控地址填127.0.0.1:8792/turbine.stream

點擊monitor

可以看到已經(jīng)將feign和ribbon兩個工程的消費者集合在了一起

服務(wù)名helloservice#hello(string)和hiservice 是被hystrix fallback的方法名

關(guān)于default

cluster-name-expression集群名字,可以是spel表達(dá)式,這里用的是默認(rèn)的default。如果想自定義集群的名字,改為如下配置:

turbine:

# 要監(jiān)控的應(yīng)用,多個用逗號隔開

app-config: feign-consumer,ribbon-consumer

# 指定聚合哪些集群,多個使用","分割,默認(rèn)為default

aggregator:

cluster-config: ribbon,feign

# 配合被監(jiān)控的應(yīng)用使用。假設(shè)想要監(jiān)控的應(yīng)用配置了eureka.instance.metadata-map.cluster: abc,則需要配置,同時turbine.aggregator.clusterconfig: abc

cluster-name-expression: metadata['cluster']

# 讓同一主機(jī)上的服務(wù)通過主機(jī)名與端口號的組合來進(jìn)行區(qū)分,默認(rèn)情況下會以host來區(qū)分不同的服務(wù),這會使得在本機(jī)調(diào)試的時候,本機(jī)上的不同服務(wù)聚合成一個服務(wù)來統(tǒng)計。

combine-host-port: true

這個配置是用了兩個集群,ribbon和feign

cluster-name-expression配的是取元數(shù)據(jù)的cluster值

這個就需要對應(yīng)去修改被監(jiān)控應(yīng)用的配置文件了,

ribbon消費者工程:

feign消費者工程:

全部重啟一下

再去hystrix頁面

這個時候再用 127.0.0.1:8792/turbine.stream是連不上的,因為集群名字已經(jīng)變了,不再有default集群了

分別用127.0.0.1:8792/turbine.stream?cluster=feign和ribbon去監(jiān)控

這樣區(qū)分的作用是,如果公司有很多的服務(wù),可以通過區(qū)分集群來分別查看。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“機(jī)電號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of JDZJ Hao, which is a social media platform and only provides information storage services.

/企業(yè)主營產(chǎn)品/
/閱讀下一篇/

等電位聯(lián)結(jié)端子,生命的守護(hù)神

相關(guān)推薦
熱點推薦
水電廠排水泵自動化控制系統(tǒng)概述

水電廠排水泵自動化控制系統(tǒng)概述

成都國科自動化控制工程有限公司
2025/11/24 9:48:35
水輪發(fā)電機(jī)組調(diào)速器油壓裝置自動化控制系統(tǒng)概述

水輪發(fā)電機(jī)組調(diào)速器油壓裝置自動化控制系統(tǒng)概述

成都國科自動化控制工程有限公司
2025/11/24 9:46:29
深潛未來,驅(qū)動無限可能:深空創(chuàng)想科技水下伺服電機(jī)應(yīng)用全景解讀

深潛未來,驅(qū)動無限可能:深空創(chuàng)想科技水下伺服電機(jī)應(yīng)用全景解讀

深圳市深空創(chuàng)想科技有限公司
2025/11/18 10:22:27
智慧公寓新標(biāo)準(zhǔn):通通鎖App讓用水管理更高效、更透明

智慧公寓新標(biāo)準(zhǔn):通通鎖App讓用水管理更高效、更透明

浙江宏諾電氣科技有限公司
2025/11/15 15:34:20
一同探秘,如何通過材料選擇與預(yù)處理,鍛造出真空電機(jī)的“不壞之身”

一同探秘,如何通過材料選擇與預(yù)處理,鍛造出真空電機(jī)的“不壞之身”

深圳市深空創(chuàng)想科技有限公司
2025/11/14 10:20:03
充電樁引發(fā)力調(diào)電費問題的解決方案-空載直補(bǔ)

充電樁引發(fā)力調(diào)電費問題的解決方案-空載直補(bǔ)

杭州時域電子科技有限公司
2025/11/13 16:02:44
充電樁晝夜負(fù)載不均導(dǎo)致功率因數(shù)不達(dá)標(biāo)案例分享

充電樁晝夜負(fù)載不均導(dǎo)致功率因數(shù)不達(dá)標(biāo)案例分享

杭州時域電子科技有限公司
2025/11/13 16:00:46
了解MPP電力管在光伏發(fā)電系統(tǒng)的應(yīng)用優(yōu)勢

了解MPP電力管在光伏發(fā)電系統(tǒng)的應(yīng)用優(yōu)勢

江蘇潤碩管業(yè)有限公司
2025/11/12 17:21:55
案例分析:無功補(bǔ)償控制器電容投滿功率因數(shù)還不達(dá)標(biāo)?

案例分析:無功補(bǔ)償控制器電容投滿功率因數(shù)還不達(dá)標(biāo)?

杭州時域電子科技有限公司
2025/11/12 8:57:46
功率因數(shù)PF與cosФ的區(qū)別

功率因數(shù)PF與cosФ的區(qū)別

杭州時域電子科技有限公司
2025/11/12 8:55:23
無功補(bǔ)償控制器投切的時間奧秘:延時、震蕩、放電一次講透!

無功補(bǔ)償控制器投切的時間奧秘:延時、震蕩、放電一次講透!

杭州時域電子科技有限公司
2025/11/12 8:53:55
諧波對功率因數(shù)有何影響?諧波影響下功率因數(shù)的補(bǔ)償上限設(shè)置問題

諧波對功率因數(shù)有何影響?諧波影響下功率因數(shù)的補(bǔ)償上限設(shè)置問題

杭州時域電子科技有限公司
2025/11/11 10:51:22
水電廠防水淹廠房監(jiān)測報警系統(tǒng)概述及構(gòu)成

水電廠防水淹廠房監(jiān)測報警系統(tǒng)概述及構(gòu)成

成都國科自動化控制工程有限公司
2025/11/11 9:42:29
EOCR-DS3 產(chǎn)品在電梯行業(yè)的應(yīng)用

EOCR-DS3 產(chǎn)品在電梯行業(yè)的應(yīng)用

承德尚越電子科技有限公司
2025/11/7 15:56:37
征途向海,動力永續(xù):專屬防水電機(jī)/水下伺服電機(jī),為特種應(yīng)用注入澎湃動能

征途向海,動力永續(xù):專屬防水電機(jī)/水下伺服電機(jī),為特種應(yīng)用注入澎湃動能

深圳市深空創(chuàng)想科技有限公司
2025/11/3 9:44:19
161595文章數(shù) 1268關(guān)注度
往期回顧 全部

電子相關(guān)熱點

賦能特殊環(huán)境,打破柔性革命:這款真空線纜為何是高端制造的“生命線”

電子相關(guān)推薦

汽車展廳的”能耗儀表盤“:Acrel-5000如何讓4S店用能數(shù)據(jù)”可視化“?

頭條要聞

破局而立,告訴你真空線纜的三大核心特質(zhì)

電子要聞

告別“糊涂賬”!產(chǎn)業(yè)園區(qū)水電收費治理指南

電子資訊

顯控觸摸屏觸摸響應(yīng)慢(維修)注意細(xì)節(jié)

往期電子要聞

高真空線纜用在哪些地方,有什么特點