当前位置:   article > 正文

【SpringCloud 2021.0.0】11、Hystrix + Dashboard 流监控 (spring-boot 2.6.3)_spring-cloud 2021 @enablehystrix

spring-cloud 2021 @enablehystrix
  • 新版本中有一些更新,如果还用旧版本的方式,会有不少问题
  • 当前版本:spring-cloud 2021.0.0spring-boot 2.6.3hystrix 和 dashboard 2.2.10

1、新建 dashboard模块

springcloud-consumer-hystrix-dashboard-9001 监控模块

1)导jar包

<!-- spring-cloud-starter-netflix-hystrix -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    <!-- 版本号由父类 dependencyManagement 管理 -->
    <!-- <version>2.2.10.RELEASE</version> -->   
</dependency>
<!-- spring-cloud-starter-netflix-hystrix-dashboard -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    <version>2.2.10.RELEASE</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2)主启动类

@EnableHystrixDashboard 开启监控功能

@SpringBootApplication
@EnableHystrixDashboard
public class DepartmentConsumerDashboard_9001 {
    public static void main(String[] args) {
        SpringApplication.run(DepartmentConsumerDashboard_9001.class,args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3)配置yml

proxy-stream-allow-list: "*" 在新版本中需要配置这个

server:
  port: 9001

hystrix:
  dashboard:
    proxy-stream-allow-list: "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

2、修改熔断服务提供者模块

被监控的方法需要有熔断功能

在这里插入图片描述

1)必备jar包

actuatorhystrix

<!-- actuator完善监控信息 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- spring-cloud-starter-netflix-hystrix -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2)主启动类

在主启动类中添加如下方法:

两个方法选一个就可以

@Bean
public ServletRegistrationBean hystrixMetricsStreamServlet() {
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new HystrixMetricsStreamServlet());
    // 监控服务的地址
    servletRegistrationBean.addUrlMappings("/actuator/hystrix.stream");
    return servletRegistrationBean;
}

/*    @Bean
    public ServletRegistrationBean<HystrixMetricsStreamServlet> getServlet() {
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean<HystrixMetricsStreamServlet> registrationBean = new ServletRegistrationBean<>(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/actuator/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 主启动类上不需要再添加新注解
  • application.yml 中不需要增加配置;不用设为 include: "*"
# 监控端口配置
management:
  endpoints:
    web:
      exposure:
        # 开启 info,health;新版本中只默认开启了 health
        include: info,health
        # 
        #include: "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3、测试

启动

在这里插入图片描述

熔断服务提供者

在这里插入图片描述

在这里插入图片描述

监控页

在这里插入图片描述

在这里插入图片描述

4、总结

需要注意的几个点

  • 监控模块的yml中要配置 proxy-stream-allow-list: "*"
  • 被监控的方法要有 熔断服务
  • 监控页面填写流地址时用 主机名,不要用ip
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/429508
推荐阅读
相关标签
  

闽ICP备14008679号