SpringCloud之Feign+Hytrix+Dashboard服务调用+熔断降级+监控

it2022-05-05  95

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


最新回复(0)