해결된 질문
작성
·
40
0
Spring Cloud Load Balancer와 Spring cloud Gateway의 차이점에 대해서 궁금해서 알아보던 중에 위의 질문을 보게되었습니다
강사님께서 LB에 대한 처리를 eureka(service discovery)에서 하고있다고 하셨는데 제가 알기로는 eureka에서는 따로 로드밸런싱 기능이 없고 서비스의 인스턴스를 요청하면 모든 인스턴스 목록을 리턴하고 이걸 받은 클라이언트측에서 받은 리스트 중 선택하는걸로 알고 있습니다.
그리고 강의에서 gateway에도 로드밸런싱 기능이 있다고 말씀하셨는데 그럼 gateway에서 로드밸런싱을 하는게 맞는것 같아서요..!
이 부분이 헷갈려서 질문드립니다.
정리하자면
eureka에서 로드밸런싱을 한다는게 하나의 서비스에 대해서 로드밸런싱이 아닌 여러 서비스 중 요청한 서비스를 찾아서 리턴하는 개념으로 로드밸런싱을 하고 있다고 한건지 그게 아니라면 자체적으로 eureka에서 로드밸런싱 기능을 제공하는게 맞는지
eureka에서 로드밸런싱 기능을 제공하는게 맞다면, gateway에 로드밸런싱 기능이 있는데 그럼 이건 eureka와 연동되는 경우에는 사용하지 않을텐데 (eureka에서 이미 로드밸런싱을 한 이후이므로) 어떠한 경우에 gateway에서 로드밸런싱을 사용하는지
위의 사항이 궁금합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
안_님께서 질문하신 Spring Cloud Load Balancer와 Spring Cloud Gateway의 로드밸런싱 관련 혼란스러운 부분에 대해 설명드리겠습니다.
Eureka와 로드밸런싱:
정확히 말하자면, Eureka는 서비스 디스커버리 기능을 제공하는 툴로, 로드밸런서를 직접 제공하지 않습니다. Eureka는 서비스 인스턴스 목록을 클라이언트에게 반환하고, 클라이언트는 이 정보로 직접 로드밸런싱을 수행할 수 있습니다. Spring Cloud Load Balancer 같은 툴이 클라이언트 측에서 이러한 기능을 제공합니다.
Spring Cloud Gateway에서 로드밸런싱:
Spring Cloud Gateway는 자체적으로 로드밸런싱 기능을 제공하여, 오는 요청을 지정된 백엔드 서비스의 여러 인스턴스에 분배할 수 있습니다. 이 기능은 실제로 Eureka와 통합되어 작동할 수 있습니다. 즉, Eureka를 사용하여 서비스 인스턴스 목록을 가져오고, Gateway가 이 정보를 바탕으로 로드밸런싱을 수행할 수 있습니다. 따라서 Gateway의 로드밸런싱 기능은 Eureka에서 받은 정보를 활용하여 작업을 수행하게 됩니다.
요약하자면, Eureka는 서비스를 찾는 역할을 하고 실제 로드밸런싱은 Spring Cloud Gateway나 다른 로드밸런싱 도구가 수행한다고 볼 수 있습니다. 이를 통해, 서비스 디스커버리와 로드밸런싱이 조합되어 더욱 효율적인 시스템 운영이 가능합니다.
추가적으로 깊이 있는 정보가 필요하시면 해당 주제에 대한 관련 문서을 참조하시면 더 많은 도움이 되실 것입니다.