Hystrix and Hystrix Dashboard
Hystrix official knowledge
wiki: https://github.com/Netflix/Hystrix/wiki
config: https://github.com/Netflix/Hystrix/wiki/Configuration
Hystrix coding
dependency:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
Add @EnableCircuitBreaker to enable Hystrix
@EnableCircuitBreaker
@SpringBootApplication
public class HystrixApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixApplication.class, args);
}
}
timeout setting in application file
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
Based on the above settings,Hystrix can run successfully.
Other settings
Fallback method
If Hystrix trigger by timeout, will call fallback method
Add @HystrixCommand on endpoint method,
@GetMapping("test")
@HystrixCommand(fallbackMethod = "testFB")
public ResultBean test(){
System.out.println("success not from Hystrix");
return ResultBean.SUCCESS("success not from Hystrix");
}
public ResultBean testFB() {
System.out.println("Hystrix!!!!!!!!!!!");
return ResultBean.FAIL("Hystrix!!!!!!!!!!!");
}
}
Hystrix Dashboard
Hystrix dashboard can monitor Hystrix in real time
Add actuator dependency in Hystrix project
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Exposure monitoring endpoint of Hystrix project
management:
endpoints:
web:
exposure:
include: hystrix.stream
server:
port: 3001
Get monitor endpoint
- http://localhost:3001/actuator
Create a new Hystrix Dashboard project
Dependency
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
application setting
spring:
application:
name: hystrix-dashboard
server:
port: 4001
hystrix:
dashboard:
proxy-stream-allow-list: localhost
Add @EnableHystrixDashboard to enable Hystrix Dashboard
@SpringBootApplication
@EnableHystrixDashboard
public class Sp08HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(Sp08HystrixDashboardApplication.class, args);
}
}
Based on the above settings,Hystrix Dashboard can run successfully.
Connect Hystrix Dashboard
-
http://localhost:4001/hystrix
Fill in the exposure endpoint get from Hystrix project
Click monitor stream button