Eureka의 역할은 Service의 등록과 로드 밸런서 역할을 할 수 있다.
사용자가 API Gateway로 요청을 보내면 Eureka에서 해당 서비스의 위치를 파악해서 Gateway에게 알려주며 로드 밸런싱 역할도 할 수 있다.
이전까지 작업했던 내용들은 Eureka의 사용 없이 Gateway에서 직접적으로 서비스를 호출하는 과정이었다.
Gateway - Service 직접 연결
물론, Eureka 사용 없이 Gateway에 service 인스턴스를 IP 주소로 직접적으로 연결해도 문제는 없다.
하지만 이렇게 할 경우 하나의 서비스에서 하나의 인스턴스 밖에 사용할 수 없어서 트래픽이 과열되는 경우 서버가 내려갈 수 있다.
Gateway - Eureka - Service 연결
Eureka를 사용할 경우, 여러 개의 서비스 인스턴스를 띄워 로드 밸런싱이 가능해진다.
로드 밸런싱은 라운드 로빈이며, Second-Service에 대해서 8083 포트와 9083 포트 두 개의 인스턴스를 생성하였을 때, 한 번은 8083 포트로 요청되고 다음은 9083 포트로 서로 돌아가면서 요청을 하게 된다.
Gateway 설정 시, 아이피 주소가 아닌 Eureka에 등록된 어플리케이션 이름으로 해야한다.