Hystrix的使用5-监控页面dashboard

折月煮酒 提交于 2020-08-12 08:39:23

Hystrix的使用5-监控页面dashboard

1.简介

Hystrix仪表板可以实时监视Hystrix指标。可以查看Hystrix服务是否处于熔断状态等等。

2.代码实现

2.1 被监控工程代码增加代码

这里我们监控cloud-provider-payment-hystrix8001服务提供者类,需要在服务提供者启动类PaymentHystrixStart8001中加入以下方法,将监控地址修改http://127.0.0.1:8001/hystrix.stream

    /**
     * 给Hystrix Dashboard指定当前工程的监控路径为:http://127.0.0.1:8001/hystrix.stream
     * @return
     */
    @Bean
    public ServletRegistrationBean getServlet(){
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }

2.2 监控工程cloud-consumer-hystrix-dashboard9001

2.2.1 监控工程POM文件

    <dependencies>
        <!--新增hystrix dashboard-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.2.2 监控工程application.yml

server:
  port: 9001

2.2.3 监控工程启动类

使用@EnableHystrixDashboard注解开启监控。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;

/**监控工程启动类
 */
@SpringBootApplication
@EnableHystrixDashboard // 开启dashboard,通过图形化的方式监控: 查看 http://127.0.0.1:9001/hystrix
public class HystrixDashboardMain9001 {

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

2.2.4 测试

我们是在Hystrix的使用3-服务熔断Circuit Breaker的基础上进行的测试。请先启动Eureka、服务提供者。

2.2.4.1 dashboard页面

浏览器访问 http://127.0.0.1:9001/hystrix 进入配置页面。

进入监控页面:

我们可以看到监控页面的各个接口的访问数据。是否处于熔断,调用成功率,调用耗时等等。

2.2.4.2 dashboard页面查看熔断

我们可以看到,开始的时候使用id<0(接口会超时)去调用getPaymentBreak接口断路器处于关闭状态,调用熔断方法10次后(错误率100%),断路器处于打开状态,然后10秒后,再次使用id>=0(接口正常)去调用getPaymentBreak接口,断路器恢复关闭状态。

3.代码请见

https://github.com/ainydexiaohai/cloud2020

4.参考文章

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!