Managing multiple routes in Spring Cloud Gateway

Viewed 621

I know Spring Cloud Gateway has multiple ways to configure routes:

  • using a Java-based DSL (eg: using RouteLocatorBuilder) and/or
  • property based configuration.

The offical Spring Cloud Gateway docs use properties to manage routes.

My questions are:

  • It is simple to configure routes for 2-3 microservices in a single file, but how do enterprise applications with so many microservices manage routes efficiently?

  • What is the recommend way to configure routes?

  • If using Java DSL, is it a good practice to use multiple Beans with the same return type. something like:

    @Bean
    RouteLocator bookRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                      .route("book_route", r -> r.method(HttpMethod.GET)
                      .and().path("/api/book/**")
                      .uri("lb://book-service"))
                      .build();
    }

    @Bean
    RouteLocator chapterRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                      .route("chapter_route", r -> r.method(HttpMethod.GET)
                      .and().path("/api/chapter/**")
                      .uri("lb://chapter-service"))
                      .build();
    }
0 Answers
Related