Netflix Hystrix 集成 hystrix-dashboard 看板

Hystrix Dashboard 是一个可视化工具,用于实时监控 Hystrix 命令的执行情况和系统的健康状况。它以直观的界面展示了各种监控指标和熔断器的状态,帮助开发人员和运维人员快速定位问题和优化系统性能。

hystrix-dashboard 主要功能

实时监控

能够实时显示 Hystrix 命令的各项指标,包括请求量、成功数、失败数、超时数、熔断器状态等,让用户一目了然地了解系统的运行情况。

集群监控

可以监控多个服务实例组成的集群,汇总和展示整个集群的监控数据,方便对大规模分布式系统进行管理和监控。

可视化界面

通过简洁直观的界面设计,以图表、仪表盘等形式展示监控数据,使监控信息更加易于理解和分析。

动态配置

支持动态修改 Hystrix 的一些配置参数,如熔断器的阈值、线程池大小等,无需重启服务即可生效,方便进行性能调优和故障排除。

集成 Hystrix Dashboard

以下是开启 Hystrix 和 Hystrix Dashboard 的详细步骤:

开启 Hystrix

如果使用 Maven 构建项目,需要在项目的 pom.xml 文件中添加 Hystrix 的依赖项,请参考“Netflix Hystrix 入门实例”。

然后在 Spring Boot 项目的主类上添加 @EnableHystrix 注解,开启 Hystrix 的功能。

添加熔断

参考前面示例,为某个接口开启熔断功能,后续会使用到。

开启 Hystrix Dashboard

如果使用 Maven 构建项目,需要在 pom.xml 文件中添加 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>

然后,在 Spring Boot 项目的主类上添加 @EnableHystrixDashboard 注解,开启 Hystrix Dashboard 的功能。如下:

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

@SpringBootApplication
@EnableHystrixDashboard // 看这里
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

配置 Dashboard

开启 Actuator 端点

Spring Boot Actuator 提供了一系列用于监控和管理应用程序的内置端点,比如 /health 用于查看应用健康状态、/info 用于展示应用的基本信息等。而 hystrix.stream 端点则是与 Hystrix 相关的,用于向外提供 Hystrix 命令执行过程中的各类监控数据,像请求的成功率、失败率、熔断器状态等。

在 application.yml 配置文件中添加如下配置信息,开启 hystrix.stream Actuator 端点:

management:
  endpoints:
    web:
      exposure:
        # 指定哪些 Actuator 端点可以通过 Web 进行暴露
        # 默认情况下,只有 info、health 和 beans 端点可以通过 Web 进行暴露
        include: hystrix.stream

设置访问权限

在 Hystrix 的配置中,hystrix.dashboard.proxy-stream-allow-list 属性用于指定允许 Hystrix Dashboard 代理访问的流的列表。它起到了一种安全控制的作用,限制了哪些流可以被 Hystrix Dashboard 所监控和获取数据。

当配置为 * 时,表示允许 Hystrix Dashboard 代理访问所有的流。这意味着 Hystrix Dashboard 将能够监控和获取系统中所有被 Hystrix 管理的服务所产生的监控数据,包括各种命令执行的信息、熔断器状态变化、线程池状态等。这样的配置在开发和测试环境中可能比较方便,因为可以全面地查看系统的运行状况和性能指标,有助于快速定位问题和进行性能优化(不建议在生产环境使用)。

在 application.yml 配置文件中添加如下配置信息,允许 Hystrix Dashboard 代理访问所有的流,如下:

hystrix:
  dashboard:
    # 表示允许 Hystrix Dashboard 代理访问所有的流(streams)
    proxy-stream-allow-list: "*"

到这里所有工作就完成了,重启服务,接下来开始验证。

验证

第一步:使用浏览器访问 http://host:port/hystrix 地址,如下图:

519e4d2b1065d8d4705f95a0e43be15c_1731993183540-e4706e4d-7aba-4727-ac16-3f9015842b78.png

如果不出意外,你能看见上述页面,表示 Hystrix Dashboard 安装成功。

第二步:使用浏览器访问任意一个已开启了熔断功能的接口。

第三步:使用浏览器访问 http://host:port/actuator/hystrix.stream 地址,此时你能看见一些监控数据,如下图:

bfffb7c1620276640954e3ffaf34ff94_1731993345934-d8b8a9f7-719e-4915-8f1c-dfbb6b6cd661.png

第四步:在第一步所示的界面的最上面的输入框中输入 http://host:port/actuator/hystrix.stream 地址,然后点击“Monitor Stream”按钮,开始监听,如下图:

aa04f2a6f9b469d372e2853abb1b261e_1731996534594-48917287-3c8b-4936-bd26-46477dbb6c87.png

监控页面说明:

cc0e9de26863486d52eb58fd34d3c2cb_1732114335282-a1ab5752-6540-46b5-a3cb-ee3eacfc8a25.png

还可以根据右上角的图例颜色进行是被,如下图:

1d8ce0861aa773f8ca5536333c7b3805_1731996799561-6006ff81-7ff7-4aba-9490-da6d6bf6d4af.png

其中,绿色表示请求成功数。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号