`

Spring Cloud Hystrix 监控面板【Finchley 版】-b2b2c小程序电子商务

阅读更多

下面我们基于之前的示例来结合 Hystrix Dashboard 实现 Hystrix 指标数据的可视化面板,这里我们将用到下之前实现的几个应用,包括:

 

eureka-server:服务注册中心

eureka-producer:服务提供者

eureka-consumer-feign-hystrix:使用 Feign 和 Hystrix 实现的服务消费者

创建 Hystrix Dashboard

创建一个标准的 Spring Boot 工程,命名为:hystrix-dashboard

POM 配置

在 pom.xml 引入相关的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>

 启动类

在 Spring Boot 的启动类上面引入注解 @EnableHystrixDashboard,启用 Hystrix Dashboard 功能。

@EnableHystrixDashboard
@SpringBootApplication
public class HystrixDashboardApplication {

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

 配置文件

修改配置文件 application.yml

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

 启动应用,然后再浏览器中输入 http://localhost:11000/hystrix 可以看到如下界面

 

通过 Hystrix Dashboard 主页面的文字介绍,我们可以知道,Hystrix Dashboard 共支持三种不同的监控方式:

 

默认的集群监控:通过 URL:http://turbine-hostname:port/turbine.stream 开启,实现对默认集群的监控。

指定的集群监控:通过 URL:http://turbine-hostname:port/turbine.stream?cluster=[clusterName] 开启,实现对 clusterName 集群的监控。

单体应用的监控: 通过 URL:http://hystrix-app:port/hystrix.stream 开启 ,实现对具体某个服务实例的监控。(现在这里的 URL 应该为 http://hystrix-app:port/actuator/hystrix.stream,Actuator 2.x 以后 endpoints 全部在 /actuator 下,可以通过 management.endpoints.web.base-path 修改)

前两者都对集群的监控,需要整合 Turbine 才能实现。这一部分我们先实现对单体应用的监控,这里的单体应用就用我们之前使用 Feign 和 Hystrix 实现的服务消费者 ——eureka-consumer-feign-hystrix。

 

页面上的另外两个参数:

 

Delay:控制服务器上轮询监控信息的延迟时间,默认为 2000 毫秒,可以通过配置该属性来降低客户端的网络和 CPU 消耗。了解springcloud架构可以加求求:三五三六二四七二五九

Title:该参数可以展示合适的标题。

为服务实例添加 endpoint

既然 Hystrix Dashboard 监控单实例节点需要通过访问实例的 /actuator/hystrix.stream 接口来实现,自然我们需要为服务实例添加这个 endpoint。

 

POM 配置

在服务实例 pom.xml 中的 dependencies 节点中新增 spring-boot-starter-actuator 监控模块以开启监控相关的端点,并确保已经引入断路器的依赖 spring-cloud-starter-netflix-hystrix

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

 启动类

为启动类添加 @EnableCircuitBreaker 或 @EnableHystrix 注解,开启断路器功能。

@EnableHystrix
@EnableFeignclients
@SpringBootApplication
public class EurekaConsumerHystrixApplication {

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

 配置文件

在配置文件 application.yml 中添加

 

management:

endpoints:

web:

exposure:

include: hystrix.stream

management.endpoints.web.exposure.include 这个是用来暴露 endpoints 的。由于 endpoints 中会包含很多敏感信息,除了 health 和 info 两个支持 web 访问外,其他的默认不支持 web 访问。详情请看 50. Endpoints

 

测试

在 Hystrix-Dashboard 的主界面上输入 eureka-consumer-feign-hystrix 对应的地址 http://localhost:9004/actuator/hystrix.stream 然后点击 Monitor Stream 按钮,进入页面。

 

如果没有请求会一直显示 “Loading…”,这时访问 http://localhost:9004/actuator/hystrix.stream 也是不断的显示 “ping”。

 

这时候访问一下 http://localhost:9004/hello/windmt,可以看到 Hystrix Dashboard 中出现了类似下面的效果

 

如果在这个页面看到报错:Unable to connect to Command Metric Stream.,可以参考这个 Issue 解决。

 

分享到:
评论

相关推荐

    spring-cloud-netflix-hystrix应用

    《深入理解Spring Cloud Netflix Hystrix:构建弹性微服务架构》 在当今的软件开发领域,微服务架构已经成为主流,而Spring Cloud作为Java生态中的微服务解决方案,深受开发者喜爱。其中,Spring Cloud Netflix ...

    spring-cloud-netflix-hystrix-dashboard-2.2.3.RELEASE.jar

    spring-cloud-netflix-hystrix-dashboard-2.2.3.RELEASE.jar

    springcloud hystrix jar包

    springcloud hystrix jar包,java -jar xx.jar,小熊界面

    Spring Boot Spring Cloud B2B2C o2o 分布式 微服务 第四篇:断路器(Hystrix)(Finchley版本)-B2B2C小程序 电子商务

    一、断路器简介 ...有spring cloud b2b2c电子商务需求的朋友可以加企鹅求求:三五三六二四七二五九 二、准备工作 这篇文章基于上一篇文章的工程,首先启动上一篇文章的工程,启动eureka-server 工程;启动servic

    springcloud2-hystrix-feign-zuul.zip

    标题 "springcloud2-hystrix-feign-zuul.zip" 提示了我们这是一组关于Spring Cloud 2的实现,具体涉及Hystrix、Feign和Zuul组件的实践项目。Spring Cloud 是一个用于构建分布式系统的服务发现、配置管理和微服务连接...

    spring cloud hystrix原理介绍及使用

    Spring Cloud Hystrix是一个由Netflix开源的Java框架,用于在分布式系统中提供延迟和容错功能,特别适用于对微服务架构中的远程过程调用(RPC)进行控制。其核心目标是通过添加一个延迟容忍层来隔离各个微服务之间的...

    springcloud hystrix 断路由

    在分布式系统中,服务间的调用异常处理是至关重要的,Spring Cloud Hystrix 就是为了解决这一问题而设计的。Hystrix 是 Netflix 开源的一个延迟和容错库,用于隔离服务间的调用,防止因某个服务的不稳定导致整个系统...

    跟我学习SpringCloud教程 第十一篇: 断路器监控(Hystrix Dashboard)(Finchley版本)-b2b2c小程序电子商务

    有spring cloud b2b2c电子商务需求的朋友可以加企鹅求求:一零三八七七四六二六 二、准备工作 本文的的来源于第一篇文章的栗子,在它的基础上进行改造。 三、开始改造service-hi 在pom的工程文件引入相应的依赖: ...

    hystrix-metrics-event-stream-1.5.18.jar

    hystrix-metrics-event-stream-1.5.18.jarhystrix-metrics-event-stream-1.5.18.jar

    跟我学Spring Cloud (四)服务容错保护 Hystrix【Finchley 版】-b2b2c电子商务

    使用 Feign Hystrix 因为熔断只是作用在服务调用这一端,因此我们根据上一篇的示例代码只需要改动 eureka-consumer-feign 项目相关代码就可以。 POM 配置 因为 Feign 中已经依赖了 Hystrix 所以在 maven 配置上不用...

    Spring Cloud Finchley SR2全套(集成Spring Gateway)

    基于Spring Cloud Finchley SR2 Spring Boot 2.0.7的最新版本。 核心基础项目内实现类自定义的权限注解,配合RBAC权限模型+拦截器即可实现权限的控制,具体的参考项目中的实现。同时也封装了一些顶层类和结果集等。...

    springcloud hystrix的使用

    通常,这包括`spring-cloud-starter-netflix-hystrix`和`spring-cloud-starter-netflix-hystrix-dashboard`,后者用于可视化监控。 2. **配置Hystrix**:在`application.yml`或`application.properties`文件中配置...

    SpringCloud -Hystrix监控面板及数据聚合(Turbine)介绍与使用示例

    要使用 Hystrix Dashboard,首先需要在项目中引入 `spring-cloud-starter-netflix-hystrix-dashboard` 依赖,并在启动类上添加 `@EnableHystrixDashboard` 注解以开启监控功能。配置文件中指定应用名称和监听端口,...

    spring cloud alibaba(2.2.1最新版)+n-xc-spring-cloud-alibaba.zip

    Spring Cloud Alibaba是一款基于Java的微服务框架,它集成了阿里巴巴一系列优秀的中间件产品,为开发者提供了全面的微服务解决方案。2.2.1是该框架的一个稳定版本,它包含了对先前版本的改进和新功能的添加,以适应...

    Spring Cloud Netfix Hystrix断路器例子

    Spring Cloud Netfix Hystrix断路器例子工程。使用Spring Cloud Netflix Hystrix以及Spring RestTemplate或Spring Cloud Netflix Feign实现断路器模式。

    standalone-hystrix-dashboard-1.5.6-all.zip

    在本案例中,我们关注的是`standalone-hystrix-dashboard-1.5.6-all.zip`,这是一个独立的Hystrix Dashboard版本,特别适合轻量级部署。 Hystrix Dashboard的核心功能在于实时展示应用中Hystrix命令(即服务调用)...

    spring-cloud-starter-netflix-zuul.zip已经闭源的jar包,pom

    Spring Cloud是Spring框架针对分布式系统解决方案的一系列集成工具集合,其中包括Eureka(服务发现)、Hystrix(断路器)、Zuul(API网关)等组件。Zuul的核心功能在于为微服务提供动态路由、过滤和安全控制,它允许...

    spring-cloud使用的各种示例

    - [springcloud(五):熔断监控Hystrix Dashboard和Turbine](http://www.ityouknow.com/springcloud/2017/05/18/hystrix-dashboard-turbine.html) - [springcloud(六):配置中心git示例]...

    spring-cloud

    ### Spring Cloud与微服务架构 #### 微服务架构概述 微服务架构是一种现代软件开发方法,它提倡将大型单体应用程序分解成一组小型、独立的服务。这些服务围绕业务能力构建,能够独立部署、扩展和维护。微服务架构...

Global site tag (gtag.js) - Google Analytics