小編給大家分享一下springcloud中如何實(shí)現(xiàn)熔斷監(jiān)控Turbine,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),買友情鏈接,1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
在復(fù)雜的分布式系統(tǒng)中,相同服務(wù)的節(jié)點(diǎn)經(jīng)常需要部署上百甚至上千個(gè),很多時(shí)候,運(yùn)維人員希望能夠把相同服務(wù)的節(jié)點(diǎn)狀態(tài)以一個(gè)整體集群的形式展現(xiàn)出來,這樣可以更好的把握整個(gè)系統(tǒng)的狀態(tài)。 為此,Netflix提供了一個(gè)開源項(xiàng)目(Turbine)來提供把多個(gè)hystrix.stream的內(nèi)容聚合為一個(gè)數(shù)據(jù)源供Dashboard展示。
1、添加依賴
org.springframework.cloud spring-cloud-starter-turbine org.springframework.cloud spring-cloud-netflix-turbine org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-starter-hystrix-dashboard
2、配置文件
spring.application.name=hystrix-dashboard-turbine server.port=8001 turbine.appConfig=node01,node02 turbine.aggregator.clusterConfig= default turbine.clusterNameExpression= new String("default") eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
turbine.appConfig :配置Eureka中的serviceId列表,表明監(jiān)控哪些服務(wù)
turbine.aggregator.clusterConfig :指定聚合哪些集群,多個(gè)使用”,”分割,默認(rèn)為default??墒褂胔ttp://.../turbine.stream?cluster={clusterConfig之一}訪問
turbine.clusterNameExpression : 1. clusterNameExpression指定集群名稱,默認(rèn)表達(dá)式appName;此時(shí):turbine.aggregator.clusterConfig需要配置想要監(jiān)控的應(yīng)用名稱;2. 當(dāng)clusterNameExpression: default時(shí),turbine.aggregator.clusterConfig可以不寫,因?yàn)槟J(rèn)就是default;3. 當(dāng)clusterNameExpression: metadata[‘cluster’]時(shí),假設(shè)想要監(jiān)控的應(yīng)用配置了eureka.instance.metadata-map.cluster: ABC,則需要配置,同時(shí)turbine.aggregator.clusterConfig: ABC
3、啟動(dòng)類
啟動(dòng)類添加@EnableTurbine,激活對(duì)Turbine的支持
@SpringBootApplication @EnableHystrixDashboard @EnableTurbine public class DashboardApplication { public static void main(String[] args) { SpringApplication.run(DashboardApplication.class, args); } }
到此Turbine(hystrix-dashboard-turbine)配置完成
4、測(cè)試
在示例項(xiàng)目spring-cloud-consumer-hystrix基礎(chǔ)上修改為兩個(gè)服務(wù)的調(diào)用者spring-cloud-consumer-node1和spring-cloud-consumer-node2
spring-cloud-consumer-node1項(xiàng)目改動(dòng)如下: application.properties文件內(nèi)容
spring.application.name=node01 server.port=9001 feign.hystrix.enabled=true eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
spring-cloud-consumer-node2項(xiàng)目改動(dòng)如下: application.properties文件內(nèi)容
spring.application.name=node02 server.port=9002 feign.hystrix.enabled=true eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
HelloRemote類修改:
@FeignClient(name= "spring-cloud-producer2", fallback = HelloRemoteHystrix.class) public interface HelloRemote { @RequestMapping(value = "/hello") public String hello2(@RequestParam(value = "name") String name); }
對(duì)應(yīng)的HelloRemoteHystrix和ConsumerController類跟隨修改,具體查看代碼
修改完畢后,依次啟動(dòng)spring-cloud-eureka、spring-cloud-consumer-node1、spring-cloud-consumer-node1、hystrix-dashboard-turbine(Turbine)
打開eureka后臺(tái)可以看到注冊(cè)了三個(gè)服務(wù):
訪問 http://localhost:8001/turbine.stream
返回:
: ping data: {"reportingHostsLast10Seconds":1,"name":"meta","type":"meta","timestamp":1494921985839}
并且會(huì)不斷刷新以獲取實(shí)時(shí)的監(jiān)控?cái)?shù)據(jù),說明和單個(gè)的監(jiān)控類似,返回監(jiān)控項(xiàng)目的信息。進(jìn)行圖形化監(jiān)控查看,輸入:http://localhost:8001/hystrix,返回酷酷的小熊界面,輸入: http://localhost:8001/turbine.stream,然后點(diǎn)擊 Monitor Stream ,可以看到出現(xiàn)了倆個(gè)監(jiān)控列表
以上是“springcloud中如何實(shí)現(xiàn)熔斷監(jiān)控Turbine”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!