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 可以看到多个服务聚合起来的指标