[스프링] 스프링 클라우드 게이트웨이와 서비스 디스커버리

스프링 클라우드는 마이크로서비스 아키텍처를 구현하고 유지 관리하기 위한 도구를 제공합니다. 이것은 분산 시스템에서 필요한 공통 기능을 제공하는데, 그 중 하나는 게이트웨이와 서비스 디스커버리입니다.

1. 스프링 클라우드 게이트웨이

스프링 클라우드 게이트웨이는 클라이언트에 대한 요청을 라우팅하는 역할을 합니다. 또한, 보안, 로깅, 모니터링 등의 동작을 수행할 수 있습니다.

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
    return builder.routes()
        .route(r -> r.path("/hello")
            .uri("http://localhost:8080"))
        .build();
}

게이트웨이는 특정 경로의 요청을 특정 서비스로 라우팅하는 방식으로 작동합니다.

2. 스프링 클라우드 서비스 디스커버리

서비스 디스커버리는 마이크로서비스 간 통신을 위해 서비스 위치 및 메타데이터를 확인하는 기능을 제공합니다.

@FeignClient("example-service")
public interface ExampleServiceClient {
    @GetMapping("/api/resource")
    String getResource();
}

여기서 @FeignClient는 클라이언트 호출을 위한 프록시를 생성하고, 해당 서비스의 api/resource 엔드포인트로 요청을 보내줍니다.

요약

스프링 클라우드는 게이트웨이를 통해 클라이언트 요청을 관리하고, 서비스 디스커버리를 통해 마이크로서비스 간의 통신을 간편하게 처리할 수 있습니다.

더 많은 정보는 스프링 클라우드 공식 문서에서 확인할 수 있습니다.