pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
feign interface
@FeignClient(value = "say-hello-service", fallback = SayHelloServiceFallBack.class)
public interface SayHelloServiceFeign {
@RequestMapping("/sayHello")
String sayHello(@RequestParam("name") String name);
}
fallback class
@Component
public class SayHelloServiceFallBack implements SayHelloServiceFeign {
@Override
public String sayHello(String name) {
return "error, " + name;
}
}
启动类
@EnableEurekaClient
@EnableFeignClients
@EnableHystrixDashboard
@EnableCircuitBreaker
@SpringBootApplication
访问
http://localhost:8764/hytrix
输入http://localhost:8764/hytrix.stream
Delay=2000,Title=GreetingServiceMonitorDashBoard
可以看到当前服务的访问指标
创建聚合监控
pom
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
启动类
@EnableTurbine
@SpringBootApplication
public class TurbineServer {
public static void main(String[] args) {
SpringApplication.run(TurbineServer.class, args);
}
}
yml
spring:
application.name: hystrix-terbine-server
server:
port: 8765
security.basic.enabled: false
turbine:
aggregator:
clusterConfig: default
appConfig: say-hello-service
clusterNameExpression: new String("default")
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
访问
http://localhost:8764/hytrix
输入http://localhost:8765/turbine.stream
Delay=2000,Title=TurbineMonitorDashBoard
可以看到多个服务聚合起来的指标