Spring Cloud 2.x系列之Feign整合断路器监控Hystrix Dashboard

  • SVN多版本库环境的搭建

  • OAuth 2.0是什么?看这篇文章就够了。

  • 前端 Java Python等资源合集大放送

 

        Ribbon 可以整合整合断路器监控Hystrix Dashboard ,Feign 也不能少, 本篇讲解一下Feign 如何整合断路器监控Hystrix Dashboard 。本篇主要整合sc-eureka-client-consumer-feign-hystrix 项目【Spring Cloud 2.x系列之Feign整合断路器Hystrix】和sc-hystrix-dashboard 项目 【Spring Cloud 2.x系列之如何使用断路器监控Hystrix Dashboard】。

 

1、          新建项目sc-feign-hystrix-dashboard ,对应的pom.xml 文件如下

 

1<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 3  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 5  <modelVersion>4.0.0</modelVersion> 6 7 8  <groupId>spring-cloud</groupId> 9 10  <artifactId>sc-feign-hystrix-dashboard</artifactId> 11 12  <version>0.0.1-SNAPSHOT</version> 13 14  <packaging>jar</packaging> 15 16 17 18  <name>sc-feign-hystrix-dashboard</name> 19 20  <url>http://maven.apache.org</url> 21 22 23   <parent> 24 25      <groupId>org.springframework.boot</groupId> 26 27      <artifactId>spring-boot-starter-parent</artifactId> 28 29      <version>2.0.4.RELEASE</version> 30 31   </parent> 32 33 34 35   <dependencyManagement> 36 37      <dependencies> 38 39        <dependency> 40 41           <groupId>org.springframework.cloud</groupId> 42 43           <artifactId>spring-cloud-dependencies</artifactId> 44 45           <version>Finchley.RELEASE</version> 46 47           <type>pom</type> 48 49           <scope>import</scope> 50 51        </dependency> 52 53      </dependencies> 54 55   </dependencyManagement> 56 57 58 59   <properties> 60 61      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 62 63      <maven.compiler.source>1.8</maven.compiler.source> 64 65      <maven.compiler.target>1.8</maven.compiler.target> 66 67   </properties> 68 69   <dependencies> 70 71 72      <!-- 说明是一个 eureka client--> 73 74      <dependency> 75 76        <groupId>org.springframework.cloud</groupId> 77 78         <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 79 80      </dependency> 81 82 83      <dependency> 84 85        <groupId>org.springframework.boot</groupId> 86 87        <artifactId>spring-boot-starter-web</artifactId> 88 89      </dependency> 90 91 92 93      <!-- <dependency> 94 95             <groupId>org.springframework.cloud</groupId> 96 97             <artifactId>spring-cloud-starter-feign</artifactId> 98 99            <version>1.4.5.RELEASE</version> 100 101         </dependency> --> 102 103 104      <dependency> 105 106        <groupId>org.springframework.cloud</groupId> 107 108        <artifactId>spring-cloud-starter-openfeign</artifactId> 109 110      </dependency> 111 112 113      <!-- <dependency> 114 115         <groupId>org.springframework.cloud</groupId> 116 117          <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> 118 119         <version>1.4.5.RELEASE</version> 120 121      </dependency>--> 122 123 124      <dependency> 125 126          <groupId>org.springframework.cloud</groupId> 127 128          <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> 129 130      </dependency> 131 132      <!-- <dependency> 133 134         <groupId>org.springframework.cloud</groupId> 135 136          <artifactId>spring-cloud-starter-hystrix</artifactId> 137 138         <version>1.4.5.RELEASE</version> 139 140      </dependency>--> 141 142      <dependency> 143 144          <groupId>org.springframework.cloud</groupId> 145 146          <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> 147 148      </dependency> 149 150   <dependency> 151 152       <groupId>org.springframework.boot</groupId> 153 154       <artifactId>spring-boot-starter-actuator</artifactId> 155 156   </dependency> 157 158 159   </dependencies> 160 161</project> 162 163

 

说明:可以看出这个pom.xml 文件是sc-eureka-client-consumer-feign-hystrix 项目【Spring Cloud 2.x系列之Feign整合断路器Hystrix】和sc-hystrix-dashboard 项目【Spring Cloud 2.x系列之如何使用断路器监控Hystrix Dashboard】的并集。

 

2、          新建spring boot 启动类FeignDashboardApplication.java

 

1package sc.consumer; 2 3 4 5import org.springframework.boot.SpringApplication; 6 7import org.springframework.boot.autoconfigure.SpringBootApplication; 8 9import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 10 11import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; 12 13import org.springframework.cloud.openfeign.EnableFeignClients; 14 15 16 17@SpringBootApplication 18 19@EnableEurekaClient 20 21@EnableFeignClients 22 23@EnableHystrixDashboard 24 25public class FeignDashboardApplication { 26 27   public static void main(String[] args) { 28 29      SpringApplication.run(FeignDashboardApplication.class, args); 30 31   } 32 33} 34 35

 

这个启动类的注解是sc-eureka-client-consumer-feign-hystrix 项目和sc-hystrix-dashboard 项目的并集

3、          其他项目文件说明如下,具体见源码

4、          启动注册中心sc-eureka-server 和服务提供者sc-eureka-client-provider ,并确保启动成功

 

5、          启动sc-feign-hystrix-dashboard 项目,并验证是否启动成功

方式一:访问注册中心查看sc-feign-hystrix-dashboard 项目配置的服务名是否注册成功

 

方式二:访问仪表盘Dashboard 对的地址http://127.0.0.1:5800/hystrix

6、          使用Hystrix Dashboard 查看服务情况

在下图标注处输入http://127.0.0.1:5800/hystrix.stream

然后点击Monitor Stream 按钮

 

7、          使用postman 访问任意服务接口,以访问获取用户信息接口为例

 http://127.0.0.1:5800/feign/user/getUser/3

尽量多访问几次,然后查看仪表盘Bashboard 监控后台,发现之前一直处于Loading 的界面发生了变化,如下图,图中单元具体含义可以访问网站

https://github.com/Netflix-Skunkworks/hystrix-dashboard/wiki

 

640?wx_fmt=png

 

访问 http://127.0.0.1:5800/hystrix.stream 也出现大量数据,这些数据就是对微服务的监控数据。

 

其他接口的监控情况可以自行访问,然后观察 断路器监控 Hystrix Dashboard的后台

源码:

1https://gitee.com/hjj520/spring-cloud-2.x 2

觉得本文对你有帮助?请分享给更多人

关注「JAVA乐园」,提升IT技能          

代码交流 2021