turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过turbine来监控集群下hystrix的metrics情况,通过eureka来发现hystrix服务。
新建turbine项目
TurbineApplication.java
package turbine;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@SpringBootApplication
@EnableTurbine
@EnableHystrix
@EnableHystrixDashboard
public class TurbineApplication{
public static void main(String[] args) {
SpringApplication.run(TurbineApplication.class,args);
}
}
pom.xml
4.0.0 turbineUTF-8 1.8 org.springframework.boot spring-boot-starter-parent1.5.2.RELEASE org.springframework.cloud spring-cloud-starter-hystrixorg.springframework.cloud spring-cloud-starter-hystrix-dashboardorg.springframework.cloud spring-cloud-starter-turbineorg.springframework.cloud spring-cloud-dependenciesCamden.SR5 pom import org.springframework.boot spring-boot-maven-plugin
application.yml
spring: application: name: turbine server: port: 8000 turbine: app-config: hello,helloClient ##需要监控的服务名 aggregator: clusterConfig: main ##需要监控的服务集群名 clusterNameexpression: metadata['cluster'] eureka: instance: preferIpAddress: true statusPageUrlPath: /info.html client: serviceUrl: defaultZone: http://localhost:8761/eureka/
启动服务
helloserviceeureka 项目 appliation.yml 增加集群配置
更改为
spring: application: name: hello server: port: 9001 eureka: instance: lease-renewal-interval-in-seconds: 3 lease-expiration-duration-in-seconds: 5 metadata-map: cluster: main client: serviceUrl: defaultZone: http://localhost:8761/eureka/ registry-fetch-interval-seconds: 3 logging: level: com: netflix: eureka: OFF discovery: OFF
pom.xml增加hystrix依赖包
org.springframework.cloud spring-cloud-starter-hystrix
同理ribboneureka 项目 application.yml 增加集群配置
更改后如下
spring: application: name: helloClient server: port: 20000 eureka: instance: lease-renewal-interval-in-seconds: 3 lease-expiration-duration-in-seconds: 5 metadata-map: cluster: main client: serviceUrl: defaultZone: http://localhost:8761/eureka/ registry-fetch-interval-seconds: 3 logging: level: com: netflix: eureka: OFF discovery: OFF
pom.xml增加hystrix依赖包
RibbonEurekaApplication.java 增加注解
@EnableHystrix
启动项目
访问 localhost:8000/hystrixx 可以看到页面
注: turbine只能监控hystrix服务,不是hystrix服务,不能监控,如 hello这个服务虽然配置了集群,但是没有使用hystrix,所以不会受监控。
项目地址 https://github.com/luosai001/Spring-Cloud-Sample/tree/master
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



