转载请注明出处 http://www.paraller.com
原文排版地址 点击获取更好阅读体验
image
Turbine
在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
application.yml
turbine:
appConfig: yea-service
aggregator:
clusterConfig: default
clusterNameExpression: new String("default")
- turbine.appConfig :配置Eureka中的serviceId列表,表明监控哪些服务
- turbine.aggregator.clusterConfig :指定聚合哪些集群,多个使用”,”分割,默认为default。可使用http://.../turbine.stream?clu...{clusterConfig之一}访问
-
turbine.clusterNameExpression :
- clusterNameExpression指定集群名称,默认表达式appName;此时:turbine.aggregator.clusterConfig需要配置想要监控的应用名称;
- 当clusterNameExpression: default时,turbine.aggregator.clusterConfig可以不写,因为默认就是default;
- 当clusterNameExpression: metadata[‘cluster’]时,假设想要监控的应用配置了eureka.instance.metadata-map.cluster: ABC,则需要配置,同时turbine.aggregator.clusterConfig: ABC
在入口程序中添加注释
@EnableTurbine
测试
http://localhost:8001/turbine.stream
PS:
在添加了 hystrix的程序里面添加turbine ,会导致 /hystrix.stream 链接无效。
建议新建一个项目,然后添加 turbine的功能,不要在微服务中添加。
其他知识点
Hystrix Timeouts And Ribbon Clients
当Hystrix和ribbon配合使用的时候,如果希望 Hystrix的超时时间大于ribbon配置的超时时间,你要考虑到重试次数,例如 Ribbon的超时时间是一秒,重试三次,那你的 Hystrix超时时间必须大于三秒。
引入 hystrix需要的Jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。