1. 程式人生 > >java熔斷、降級、hystrix監控

java熔斷、降級、hystrix監控

一、hystrix

二、實現方式

1.通過註解實現

2.AOP實現

3.繼承方式實現

三、hystrix監控

1.單機監控

修改專案配置

1、pom.xml

 <dependency>
    <groupId>com.netflix.hystrix</groupId>
     <artifactId>hystrix-core</artifactId>
     <version>1.4.10</version>
 </dependency> 
 <dependency>
     <groupId>com.netflix.hystrix</groupId>
      <artifactId>hystrix-metrics-event-stream</artifactId>
     <version>1.4.10</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

說明: hystrix-core:hystrix核心介面包 hystrix-metrics-event-stream:只要客戶端連線還連著,hystrix-metrics-event-stream就會不斷的向客戶端以text/event-stream的形式推送計數結果(metrics)

2.在web.xml新增如下配置

<servlet>
        <display-name>HystrixMetricsStreamServlet</display-name>
        <servlet-name>HystrixMetricsStreamServlet</servlet-name>
        <servlet-class>com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HystrixMetricsStreamServlet</servlet-name>
        <url-pattern>/hystrix.stream</url-pattern>
    </servlet-mapping>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

下載hysttrix-dashboard

git clone https://github.com/kennedyoliveira/standalone-hystrix-dashboard.git
cd standalone-hystrix-dashboard
  • 1
  • 2

部署hystrix-dashboard

1.如果用方式一的下載方式,需要編譯進入目錄編譯

./gradlew runDashboard
  • 1

2.如果用方式一的下載方式在C:\xxx\xxx\standalone-hystrix-dashboard-1.5.6\standalone-hystrix-dashboard-1.5.6\build\libs目錄下找到打好的jar包 3.將方式一下載打好的jar包或方式二下載的jar包上傳到伺服器 4.使用如下命令啟動

java -jar standalone-hystrix-dashboard-{VERSION}-all.jar
  • 1

5.訪問 預設埠為7979

訪問介面檢視監控指標

監控介面引數說明這裡寫圖片描述

2.叢集監控

再生產環境下,一般都是部署的叢集,但是按照上面單機監控的思路去解決的話,很多指標都是針對單臺機器的,其實更多情況下我們不關注但臺機器指標,而是看hystrx相關指標是否正常,所以需要一個聚合各機器指標的地方,這個專案就是turbine。叢集hystrix指標監控的實現思路是 hysttrix-dashboard—–>turbine-web(集合監控資料)——->hystrix.stream

下載turbine-web

啟動你要監控的專案叢集

將要監控的專案叢集啟動

解壓turbine-web

下載下來的是一個war工程,可以直接修改後綴為.zip使用解壓軟體解壓,將解壓後的工程放到tomcat中的webapps目錄下。

配置聚合資訊

進入WEB-INF\classes目錄,開啟config.properties 該檔案中會配置: 1. Turbine在監控哪些叢集:turbine.aggregator.clusterConfig=cluster-1,cluster-2 2. Turbine怎樣獲取到節點的監控資訊(hystrix.stream):turbine.instanceUrlSuffix. = :/HystrixDemo/hystrix.stream 3. 叢集下有哪些節點:turbine.ConfigPropertyBasedDiscovery.cluster-1.instances=localhost:8080,localhost:8081 上面這些都是最簡單的配置方法 Turbine使用了Netflix的另一個開源專案Archaius(https://github.com/Netflix/archaius)來做配置檔案的管理,其提供了非常強大的配置檔案管理策略,有需要的同學可以深入研究(https://github.com/Netflix/Turbine/wiki/Configuration)。

啟動turbine

叢集監控方式

這裡寫圖片描述 這樣點選monitorStream就會展示cluster-1叢集機器的彙總資料

說明:注意turbine的配置

--------------------- 本文來自 Awna 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/forwujinwei/article/details/81027245?utm_source=copy