zoukankan      html  css  js  c++  java
  • cloud turbine

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

    1.断路器1

    入口类

    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableCircuitBreaker
    public class HystrixController {
    public static void main(String[] args) {
    SpringApplication.run(HystrixController.class, args);
    }
    }

    service

    @Service
    public class HystrixService {
    @HystrixCommand(fallbackMethod="fail")
    public String reqmap(String param){
    if(param.equals("wangjing")){
    throw new RuntimeException();
    }
    return param+"--hystrix";
    }
    public String fail(String param){
    return "runtimeException";
    }
    }

    控制层

    @RestController
    @RequestMapping(value="/reqmap",produces={"application/json;charaset=utf-8"},method=RequestMethod.GET)
    public class HystrixReqMap {
    @Autowired
    HystrixService hystrixService;
    @RequestMapping("")
    public String reqmap(String param){
    return hystrixService.reqmap(param);
    }
    }

    application.properties

    spring.application.name=cloud-hystrix-one
    server.port=8111
    eureka.client.healthcheck.enabled=true
    eureka.instance.lease-renewal-interval-in-seconds=5
    eureka.instance.lease-expiration-duration-in-seconds=10
    eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/
    eureka.instance.hostname=windows1  #使用turbine进行本地测试时,可能会出现只展示一个仪表盘,是因为多个服务同时注册eureka(默认是以主机名注册),主机名全为localhost,所以要设置注册eureka的主机名。在hosts里记得配置。

    2.断路器2

    其它都一致

    application.properties

    spring.application.name=cloud-hystrix-two
    server.port=8222
    eureka.client.healthcheck.enabled=true
    eureka.instance.lease-renewal-interval-in-seconds=5
    eureka.instance.lease-expiration-duration-in-seconds=10
    eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/
    eureka.instance.hostname=windows2

    3.turbine服务

    添加依赖 <dependency>

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

    application.properties中

    spring.application.name=cloud-turbine
    server.port=8999
    eureka.client.healthcheck.enabled=true
    eureka.instance.lease-renewal-interval-in-seconds=5
    eureka.instance.lease-expiration-duration-in-seconds=10
    eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/
    turbine.appConfig=feign-client,loadbalance
    turbine.aggregator.clusterConfig=default
    turbine.clusterNameExpression=new String("default")

    • turbine.appConfig :配置Eureka中的serviceId列表,表明监控哪些服务
    • turbine.aggregator.clusterConfig :指定聚合哪些集群,多个使用”,”分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
    • turbine.clusterNameExpression : 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

    启动类

    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableTurbine
    @EnableHystrixDashboard
    public class CloudFurbineController {
    public static void main(String[] args) {
    SpringApplication.run(CloudFurbineController.class, args);
    }
    }

     http://localhost:8999/hystrix返回酷酷的小熊界面,输入: http://localhost:8999/turbine.stream,然后点击 Monitor Stream ,可以看到出现了俩个监控列表

  • 相关阅读:
    挂载银行前置机Ukey到windows server2012虚拟机的操作记录
    LVS负载均衡下session共享的实现方式-持久化连接
    Centos6.9下RabbitMQ集群部署记录
    Linux下绑定网卡的操作记录
    Redis Cluster集群知识学习总结
    Redis Cluster日常操作命令梳理
    android Unable to inflate view tag without class attribute
    java / android int类型如何判空?
    Android 倒计时按钮,倒计时发送短信验证码…
    Android 自定义View
  • 原文地址:https://www.cnblogs.com/wangjing666/p/7055541.html
Copyright © 2011-2022 走看看