Spring-Cloud组件之HystrixDashbord监控

Spring-Cloud组件之HystrixDashbord监控

  • HystrixDashbord是什么?
  • spring-boot-actuator
  • Hystrix+spring-boot-actuator
  • HystrixDashbord操作

HystrixDashbord是什么?

中文的意思是仪表盘,仪表盘是干啥的,就是为了能够实时监控数据,比如水温表,我们并不能直接看水就知道多少度,但是我们看水温表就知道现在的水温是多少了,HystrixDashbord也是一样,能够通过可视化界面来看到我们想要的数据,这个就是为了来监控各个微服务之间的服务调用情况,失败多少,成功多少,熔断了多少,超时了多少等等信息。
其实Hystrix提供了对微服务调用状态的监控,但是需要结合 spring-boot-actuator 模块来一起使用。

spring-boot-actuator

actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管、审计、收集应用的运行情况。
这里就只做简单介绍,后面我会来整理相关文档详细介绍一下这个。

Hystrix+spring-boot-actuator

我们在user项目上讲解吧:
添加依赖:

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yml最后面加上这个,因为spring Boot 2.0.x以后的Actuator 只暴露了info 和health 2个端点,这里我们把所有端点开放。

management:
  endpoints:
    web:
      exposure:
        include: '*'

然后我们启动user项目,然后我们访问http://localhost:6001/actuator/hystrix.stream
界面是这样的:
Spring-Cloud组件之HystrixDashbord监控_第1张图片
这是因为我们还没有请求数据导致的,我们可以访问一下:http://localhost:6001/getFeignErrorPower
然后刷新一下上面那个页面,然后收到的又是这些数据:
Spring-Cloud组件之HystrixDashbord监控_第2张图片
这都是啥啊???看着头皮发麻。但这个是我们的微服务监控的信息,全都是一些json格式的字符串,我们看一下里面有啥吧:
Spring-Cloud组件之HystrixDashbord监控_第3张图片
虽然转换后我们能看见一点点,但也实在是难以理解。哎…难道今天的监控就是这玩意?心里一万头***路过。。。哈哈哈哈,开个玩笑啦,接下来才是我们的主角登场好吗。

HystrixDashbord操作

这里就不解释什么了,文章开头已经解释过了。这里直接来看代码。
新建一个项目 hystrix_dashbord
pom.xml:

<?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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>com.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>hystrix_dashbord</artifactId>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

配置文件:application.yml,比较简单,就是设置了一下端口

server:
  port: 7080

启动类HystrixDashbordApp:

@SpringBootApplication
@EnableHystrixDashboard
public class HystrixDashbordApp {

    public static void main(String[] args) {
        SpringApplication.run(HystrixDashbordApp.class);
    }
}

好了,这就完了呀,就这么简单。
启动一下项目。访问 http://localhost:7080/hystrix
Spring-Cloud组件之HystrixDashbord监控_第4张图片
然后这个就是类似tom猫的欢迎页,上面这个熊一样的页面就是HystrixDashbord的欢迎页,啊呸,不是熊,这个官方解释说是 豪猪 。但是我见过的豪猪不是这样的啊。。。
Spring-Cloud组件之HystrixDashbord监控_第5张图片
感觉两个不太一样啊。。。。
这个就不纠结了,哈哈哈哈哈。。。为什么选择豪猪做Logo呢,其实是有寓意的,这是代表用HystrixDashbord就可以保证我们微服务的安全。

好像扯远了,还是来看看怎么用吧:上面有一个输入框,是填写监控地址的,就是我们前面那个满屏json格式数据的链接 http://localhost:6001/actuator/hystrix.stream ,下面一个是延迟时间,一个是标题。我们在上面的输入框输入上面的链接,然后点击最下面的链接:
Spring-Cloud组件之HystrixDashbord监控_第6张图片
跳转到这个页面了。忽略上面标题,我没有写标题,默认就是地址为标题了。
这是一个什么页面呢,既然是监控各个微服务之间的服务调用情况,那我们来试着访问一下http://localhost:6001/getFeignErrorPower 这里我是没有启动power服务的啊,所以肯定是访问失败的。。。然后 页面动了
Spring-Cloud组件之HystrixDashbord监控_第7张图片
这里就不卖关子了。直接上图解释一下
Spring-Cloud组件之HystrixDashbord监控_第8张图片
上面不是有一个实心圆吗?这个会改变的,你们可以自己多次请求看看这个圆的变化,这里我就不给动图了。
实心圆:共有两种含义。它通过颜色的变化代表了实例的健康程度,它的健康度从绿色。该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过该实心圆的展示,就可以在大量的实例中快速的发现故障实例和高压力实例。
曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。

好吧,这个HystrixDashbord也写完了啊。其实这个东西比较简单,我们只需要知道怎么弄出来这个监控页面,每个值代表什么意思就可以了。

你可能感兴趣的:(微服务专题)