Автоматический выключатель Hystrix и Ratelimitter не работают для Spring Cloud Gateway - PullRequest
0 голосов
/ 07 октября 2019

Я реализую функции API Gateway с помощью облачного шлюза Spring.

У меня мало вопросов, может кто-нибудь обратиться, пожалуйста?

  1. Автоматический выключатель Hystrix не работает при развертывании в openshiftгде, как это хорошо работает на локальном
  2. Попытка реализовать Ratelimiter, но не в состоянии выдать 429 Ошибка слишком многих запросов (даже локальных)
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayServiceApplication.class, args);
    }

    @Bean(name = "userKeyResolver")
    public KeyResolver userKeyResolver() {
        return exchange -> {
            return Mono.just(exchange.getRequest().getRemoteAddress().getAddress().getHostAddress());
        };
    }
}

application.yml

 spring:

    cloud:
    gateway:
      routes:
      - id: interface-service
        uri: http://interface-service-env.alpha.prof.comp.com
        predicates:
        - Path=/v1/getConfig
        filters:
        - name: Hystrix
          args:
            name: fallbackcmd
            fallbackUri: forward:/fallback/getConfig
        - RewritePath=/v1/getConfig, /getConfig

      - id: interface-service
        uri: http://interface-service-env.alpha.prof.comp.com
        predicates:
        - Path=/helloworld
        filters:
        - name: RequestRateLimiter
          args:
            redis-rate-limiter.replenishRate: 1
            redis-rate-limiter.burstCapacity: 1
            key-resolver: "#{@userKeyResolver}" 
@RestController
@RequestMapping("/fallback")
public class HysController {

    @GetMapping("/getConfig")
    public String getConfig() {
        return "API Call is down, This is the fall back Service for /getConfig ";
    }
}
...