《hystrix dashboard 断路器仪表盘,监控信息》

hystrix dashboard 断路器仪表盘

在这里插入图片描述

hystrix 对请求的降级和熔断,可以产生监控信息,hystrix dashboard可以实时的进行监控

  • actuator 是 spring boot 提供的服务监控工具,提供了各种监控信息的监控端点
  • management.endpoints.web.exposure.include 配置选项
  • 可以指定端点名,来暴露监控端点
  • 如果要暴露所有端点,可以用 “*”

actuator 监控工具

可以暴露项目中各种监控信息

  • 健康状态
  • 系统环境变量
  • spring容器中所有的对象
  • mapping访问路径
  • hystrix.stream (Hystrix监控数据断点)

配置:

  • 添加 actuator 依赖
  • yml中配置监控断点

pom.xml 添加 actuator 依赖

负载均衡服务器中调用

xml依赖:

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

调整 application.yml 配置,并暴露 hystrix.stream 监控端点

spring:
  application:
    name: hystrix
    
server:
  port: 3001
  
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
      
ribbon:
  MaxAutoRetriesNextServer: 1
  MaxAutoRetries: 1
  OkToRetryOnAllOperations: true
  
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 500

management:
  endpoints:
    web:
      exposure:
        include: hystrix.stream

访问 actuator 路径,查看监控端点

http://localhost:3001/actuator
在这里插入图片描述


Hystrix dashboard 仪表盘

1 - Hystrix仪表盘系统错误监控

2 - 依赖于actuator工具来暴露监控数据

  • 暴露断点 :hystrix

3 - 搭建仪表盘项目

  • 添加 Hystrix dashboard 依赖

  • @EnableHystrixDashboard


新建 hystrix-dashboard 项目

创建springboot项目

在这里插入图片描述

依赖

在这里插入图片描述


pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.tedu</groupId>
    <artifactId>sp08-hystrix-dashboard</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>sp08-hystrix-dashboard</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    </properties>

    <dependencies>
        <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-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </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>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.tedu.sp08.Sp08HystrixDashboardApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

application.yml 配置文件

spring:
  application:
    name: hystrix-dashboard
    
server:
  port: 4001

eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka

hystrix:
  dashboard:
    proxy-stream-allow-list: localhost

主程序添加 @EnableHystrixDashboard@EnableDiscoveryClient

@EnableDiscoveryClient
@EnableHystrixDashboard
@SpringBootApplication
public class Sp08HystrixDashboardApplication {
    
    

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

}

启动,并访问测试

在这里插入图片描述
在这里插入图片描述

访问 hystrix dashboard

http://localhost:4001/hystrix

在这里插入图片描述

填入 hystrix 的监控端点,开启监控

  • http://localhost:3001/actuator/hystrix.stream
  • 在这里插入图片描述

通过 hystrix 访问服务多次,观察监控信息

http://localhost:3001/item-service/35
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45103228/article/details/114107925