[스프링] 스프링 클라우드 게이트웨이와 서비스 디스커버리
스프링 클라우드는 마이크로서비스 아키텍처를 구현하고 유지 관리하기 위한 도구를 제공합니다. 이것은 분산 시스템에서 필요한 공통 기능을 제공하는데, 그 중 하나는 게이트웨이와 서비스 디스커버리입니다.
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
엔드포인트로 요청을 보내줍니다.
요약
스프링 클라우드는 게이트웨이를 통해 클라이언트 요청을 관리하고, 서비스 디스커버리를 통해 마이크로서비스 간의 통신을 간편하게 처리할 수 있습니다.
더 많은 정보는 스프링 클라우드 공식 문서에서 확인할 수 있습니다.