博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cloud turbine
阅读量:7239 次
发布时间:2019-06-29

本文共 3339 字,大约阅读时间需要 11 分钟。

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>

org.springframework.cloud
spring-cloud-starter-turbine
org.springframework.cloud
spring-cloud-netflix-turbine
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 ,可以看到出现了俩个监控列表

 

转载于:https://www.cnblogs.com/wangjing666/p/7055541.html

你可能感兴趣的文章
【LeedCode】3Sum
查看>>
基于Token的WEB后台认证机制
查看>>
hdu1412
查看>>
ssh卡在debug1: SSH2_MSG_KEXINIT sent解决方法
查看>>
HTTP 错误 404.17 - Not Found和 HTTP 错误 404.2 - Not Found 解决办法
查看>>
Python中可迭代对象、迭代器以及iter()函数的两个用法详解
查看>>
C# winform程序防止前台卡死
查看>>
JdbcDaoSupport应用
查看>>
Java加密算法(五)——非对称加密算法的由来DH
查看>>
centos7下vim8.1的编译安装教程
查看>>
服务器上传文件:通过远程桌面传输文件
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
计算字符串最后一个单词的长度,单词以空格隔开。 java算法
查看>>
妙味css3课程---1-1、css中自定义属性可以用属性选择器么
查看>>
MySQL数据库实现Oracle常用函数
查看>>
Python 进阶_OOP 面向对象编程_类属性和方法
查看>>
python 小笔记
查看>>
python firebase
查看>>
MegaCli64 raid对应关系
查看>>
LSM Tree解析
查看>>