Hystrix之Dashboard的常见问题
Hystrix Dashboard (斷路器:Hystrix 儀表盤(pán))只監(jiān)控一個(gè)實(shí)例,而Turbine監(jiān)控多個(gè)實(shí)例,要使用Turbine必須使用Hystrix,因?yàn)門(mén)urbine是為了監(jiān)控?cái)嗦菲鞯臓顟B(tài)產(chǎn)生的。turbine.stream來(lái)聚合hystrix.stream端點(diǎn)。
1、Dashboard的實(shí)質(zhì)是將微服務(wù)訪問(wèn)的API來(lái)顯示出來(lái),所以只有訪問(wèn)了服務(wù)接口,Dashboard上面才會(huì)出現(xiàn)數(shù)據(jù),否則是不出現(xiàn)的。
ribbon和feign中如何使用dashboard:
參考如下連接:http://blog.csdn.net/seapeak007/article/details/77261729
2、在使用feign整合dashboard的時(shí)候,注意:Feign整合了Hystrix,但是我們還是需要添加Hystrix的依賴。
另外,在使用監(jiān)控的時(shí)候,網(wǎng)絡(luò)要好!否則根本不行!
這里重點(diǎn)看下訪問(wèn)dashboard界面的url:
博客:
https://www.cnblogs.com/wangjing666/p/7049985.html
(1)查看數(shù)據(jù):
http://localhost:2345/hystrix.stream
(2)查看dashboard:
http://localhost:2345/hystrix
默認(rèn)是上面紅框的依賴,我們需要添加springcloud的Hystrix的依賴。
另外需要在啟動(dòng)類上面添加啟動(dòng)Hystrix的注解。
3、需要啟動(dòng)Hystix需要添加監(jiān)控依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
4、Turbine(特本)的出現(xiàn)的原因:
生產(chǎn)環(huán)境中服務(wù)往往是集群部署的,我們需要監(jiān)控多個(gè)服務(wù),Turbine可以做一些監(jiān)控?cái)?shù)據(jù)的聚合,監(jiān)控多個(gè)服務(wù)。
作用:匯總系統(tǒng)內(nèi)多個(gè)服務(wù)的數(shù)據(jù)并顯示到 Hystrix Dashboard 上。
Turbine的使用:
寫(xiě)一個(gè)Turbine的服務(wù)類,注冊(cè)到Eureka上去,
在此服務(wù)中加入依賴,加入注解,配置需要監(jiān)控的實(shí)例。
老版本的坑:
5、幾個(gè)概念
hystrix.stream出現(xiàn):
在引入spring-boot-starter-actuator依賴后,Spring Boot應(yīng)用會(huì)暴露出/hystrix.stream端點(diǎn)以供監(jiān)控工具讀取該應(yīng)用的Hystrix Metrics數(shù)據(jù)。
有個(gè)actuator的文章:http://blog.csdn.net/neosmith/article/details/70800663
這里監(jiān)控有數(shù)據(jù)之后,我們就可以在dashboard上面看到波動(dòng)。
spring-boot-starter-actuator的作用:在生產(chǎn)環(huán)境中,需要實(shí)時(shí)或定期監(jiān)控服務(wù)的可用性。spring-boot 的actuator(監(jiān)控)功能提供了很多監(jiān)控所需的接口。所以說(shuō)actuator即只要有監(jiān)控就要使用這個(gè)依賴。http://blog.csdn.net/clementad/article/details/52045495
Turbine的使用:
創(chuàng)建一個(gè)單獨(dú)的服務(wù),然后添加依賴:添加注解,turbine需要注冊(cè)到Eureka上面去,因?yàn)樗O(jiān)控多個(gè)服務(wù)端點(diǎn)。
依賴:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springcloud.learning</groupId>
<artifactId>hystrix-turbine</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hystrix-turbine</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
注解:
如何監(jiān)控服務(wù)呢?
1、首先查看是否有數(shù)據(jù):查看turbine端口是否有數(shù)據(jù)?
根據(jù)上面在配置文件中的配置添加配置即可,配置監(jiān)控服務(wù)的名稱
2、在所監(jiān)控的服務(wù)路徑上面查看hystrix的dashboard上面查看服務(wù)狀況
結(jié)果:
如何監(jiān)控多個(gè)服務(wù)呢?
配置文件:
測(cè)試:這個(gè)時(shí)候監(jiān)控?cái)?shù)據(jù)的鏈接已經(jīng)改變:
注意這里不加后面的服務(wù)名稱了,因?yàn)樯厦媾渲媚J(rèn)了,是由多個(gè)服務(wù)列表。
查看界面圖:
結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的Hystrix之Dashboard的常见问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (1)dotnet开源电商系统-brns
- 下一篇: ASP.NET Web API 应用教程