#dynamic #gateway #hystrix
Вопрос:
Почему необходимо расширять Hystrix-команду или использовать @Hystrix-команду на шлюзе и резервную функцию Hystrix ? Код в этом URL-адресе : https://github.com/shzxj/gateway-hystrix.git Я хочу использовать динамический маршрут в yml. Что мне делать ? Кто может мне помочь?
код контроллера:
@GetMapping("/fallback")
public String fallback() {
return "fallback";
}
@GetMapping("/test")
public String test() {
try {
sleep(2000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "test";
}
код начального класса :
@SpringBootApplication
public class ApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ApiGatewayApplication.class, args);
}
}
приложение.yml
server:
port: 8000
logging:
level:
root: INFO
spring:
application:
name: api-gateway
cloud:
gateway:
default-filters:
- name: Hystrix
args:
name: fallbackcmd
fallbackUri: forward:/fallback
routes:
- id: api-gateway
uri: http://localhost:8000
order: 0
predicates:
- Path=/gateway/**
filters:
- StripPrefix=1
- name: Hystrix
args:
name: fallbackcmd
fallbackUri: forward:/fallback
filters:
- name: Hystrix
args:
name : default
fallbackUri: forward:/fallback
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 100
fallbackcmd:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 100
circuitBreaker:
forceOpen: true
ribbon:
ReadTimeout: 100
ConnectTimeout: 100
Запасной вариант работает, когда запрашивается несуществующий путь «/test_error».
Запасной вариант не работает при запросе пути «/test».