spring cloud:Turbine的应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud:Turbine的应用相关的知识,希望对你有一定的参考价值。

1、概念

Turbine 是聚合服务器发送事件流数据的一个工具,用来监控集群下 hystrix 的 metrics 情况。

2、引入依赖

    <dependency>        

        <groupId>org.springframework.cloud</groupId>         

       <artifactId>spring-cloud-netflix-turbine</artifactId>      

      </dependency>

3、创建应用

        TurbineApplication

        @SpringBootApplication

        @EnableTurbine

        public class TurbineApplication {

          public static void main(String[] args) {

            new SpringApplicationBuilder(TurbineApplication.class).web(true).run(args);

          }

        }

4、对应配置信息

            server.port=8031

            spring.application.name=turbine

            turbine.appConfig=app01,app02

            turbine.aggregator.clusterConfig= app

            turbine.clusterNameExpression= metadata['cluster']

   turbine.appConfig 配置需要聚合的应用 
   turbine.aggregator.clusterConfig turbine需要聚合的集群名称 通过 http://localhost:8031/turbine.stream?cluster=app 访问 
   turbine.clusterNameExpression 获取集群名表达式,这里表示获取元数据中的cluster数据,在app01、app02为配置对应信息

5、创建EurekaServer服务

6、创建应用app01   

        @Configuration

        @EnableAutoConfiguration

        @EnableDiscoveryClient

        @EnableCircuitBreaker

        @RestController

        public class App01 {

         public static void main(String[] args) {

         SpringApplication.run(App01.class, args);

         }

         @Autowired

         private HelloService service;

         @RequestMapping("/")

        

         public String hello() {

         return this.service.hello();

         }

         @Component

         public static class HelloService {

         @HystrixCommand(fallbackMethod = "fallback")

         public String hello() {

         return "Hello World";

         }

         public String fallback() {

         return "Fallback";

         }

         }

        }

对应配置:

          server.port= 8091 
          spring.application.name=app01 
          eureka.instance.hostname=localhost 
          eureka.instance.metadata-map.cluster=app

7、创建应用app02

      对应配置:

          server.port= 8092 
          spring.application.name=app02
          eureka.instance.hostname=localhost 
          eureka.instance.metadata-map.cluster=app

8、三个应用同时注册到EurekaServer,然后启动大盘服务,在大盘服务里面输入http://localhost:9031/turbine.stream?cluster=app得到监控界面;

9、监控界面的各个指标的含义

  1. 圆形颜色和大小:代表健康情况和流量

  2. 折线:2分钟内的吞吐率变化情况

  3. hosts:集群中节点个数

  4. median: 每个请求时间的中位数

  5. mean: 平均每个请求消耗的时间

  6. subscriberGetAccount
    绿200545:代表成功请求数量 
    蓝0:代表断路数量 
    黄19:代表表超时的线程数量 
    紫94:代表线程池拒绝次数,即线程不够用 
    红0: 失败或异常数量 
    灰0%: 最后10秒错误率

  7. host: 各节点每秒的平均请求吞吐量

  8. cluster: 集群每秒的请求吞吐量

  9. circuit:代表断路器状态即:是否打开断路器 90th,99th,99.5th: 
    最后1分钟各种延迟的百分比。如图:90%的请求小于10ms;而99%的请求小于44ms,99.5%的请求在61ms完成。

10、总结

  通过turbine可以监控集群的请求量,可以知道系统的请求高峰期,从而更好的知道系统的短板在哪里

以上是关于spring cloud:Turbine的应用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Turbine

11.Spring-Cloud-Hystrix之熔断监控Turbine

Spring Cloud Turbine - 无法处理多个客户端?

spring cloud熔断监控Hystrix Dashboard和Turbine

Spring Cloud Turbine AMQP 不适用于 Hystrix 仪表板

spring cloud深入学习-----熔断监控Hystrix Dashboard和Turbine