Hystrix-Turbine-集群监控

一)集群监控

Hystrix-Turbine-集群监控

Turbine 是聚合服务器发送事件流数据的一个工具,hystrix 的 监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 t urbine 来监控集群服务。

使用集群监控服务的时候被监控的服务需要有Dashboard的坐标

1.修改Customer添加Dashboard

<!--        使用可视化界面需要添加的坐标-->
        <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>

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

2.在启动类上添加注解

@EnableCircuitBreaker
@EnableHystrixDashboard、
注意:
在启动类中添加一个的方法,修改默认的获取请求流的信息,不然Turdine获取不到信息,因为Turdine默认是从http://ip:port/actuator/hystrix.stream这个的路径取信息的

@SpringBootApplication
@EnableEurekaClient
@EnableHystrixDashboard //开启可视化页面
@EnableCircuitBreaker //开启熔断
public class Application
{

    public static void main(String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
 /**
 * 配置路径映射,获取JSON格式的请求数据
 * @return
 */
@Bean
public ServletRegistrationBean hystrixMetricsStreamServlet() {
    ServletRegistrationBean registration = new ServletRegistrationBean(new HystrixMetricsStreamServlet());
    registration.addUrlMappings("/actuator/hystrix.stream");
    return registration;
    }

}

全局配置文件

spring.application.name=26-hystrix-turbine
server.port=9010
eureka.client.service-url.defaultZone=http://peer1:8081/eureka/,http://peer2:8082/eureka/,http://peer3:8083/eureka/



#配置 Eureka 中的 serviceId 列表,表明监控哪些服务
turbine.appConfig=21-hystrix-threadpool,23-feign-customer-fallback
#指定聚合哪些集群,多个使用","分割,默认为 default。可使用http://.../turbine.stream?cluster={clusterConfig 之一}访问
turbine.aggregator.clusterConfig=default
# 1. clusterNameExpression 指定集群名称,默认表达式 appName;此时:turbine.aggregator.clusterConfig 需要配置想要监控的应用名称;
# 2. 当 clusterNameExpression: default 时,turbine.aggregator.clusterConfig
#可以不写,因为默认就是 default;
# 3. 当 clusterNameExpression: metadata['cluster']时,假设想要监控的应用配置了eureka.instance.metadata-map.cluster: ABC,
# 则需要配置,同时 turbine.aggregator.clusterConfig:ABC
turbine.clusterNameExpression="default"

3.在Turdine内添加坐标

<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>

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

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

4.修改启动类

使用注解@EnableTurbine注解开启Turbine的功能

@SpringBootApplication
@EnableTurbine //开启Turbine
public class Application
{

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

}

5.启动Customer
6.启动Turbine
请求Customer之后,使用Turbine的URL地址访问如下链接
http://localhost:9010/turbine.stream

如果能返回如下信息就是链接成功注意返回的是在Turbine内设置

Hystrix-Turbine-集群监控

7.启动Dashboard

在Dashboard的管理界面上输入http://localhost:9010/turbine.stream

得到集群信息,如果没有获取到信息,请按照顺序启动,

启动Customer——》请求Customer-——》请求——Customer的http://ip:port//actuator/hystrix.stream ——》启动Turbine———》请求的http://localhost:9010/turbine.stream ——》启动Dashboard——》在管理界面数据输入http://localhost:9010/turbine.stream

Hystrix-Turbine-集群监控

上一篇:springcloud之Hystrix集群及集群监控turbine


下一篇:java springcloud版b2b2c社交电商spring cloud分布式微服务(十三)断路器聚合监控(Hystrix Turbine)