@Configuration
public class FilterConfig {
@Bean
public RouteLocator gatewayRoutes(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/certification-service/**")
.filters(f -> f.addRequestHeader("certification-request", "certification-request-header")
.addResponseHeader("certification-response", "certification-response-header"))
.uri("http://localhost:2020"))
.build();
}
}
spring:
main:
web-application-type: reactive
application:
name: futur
cloud:
gateway:
routes:
- id: certification # 인증 서버
uri: http://localhost:2020
predicates:
- Path=/certification/**
- filters:
- AddRequestHeader=certification-request, certification-request-header
- AddResponseHeader=certification-response, certification-response-header
server:
port: 2020
spring:
application:
name: gateway-service
cloud:
gateway:
routes:
- id: certification-service
uri: lb://certification-service
predicates:
- Path=/certification/**
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka
Eureka Client 서버의 spring.application.name 값이 uri에 들어가야 한다.
Load Balancing
- 로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법입니다.