Loans 마이크로서비스의 두 개의 인스턴스를 시작하고 클라이언트 사이드 로드 밸런싱(Client-side Load Balancing)의 작동 방식을 데모로 확인해보겠습니다.
먼저, docker-compose.yml
파일을 열고 Loans 마이크로서비스에 대한 구성을 복사하여 동일한 파일 아래에 붙여넣습니다.
loans1
로 변경합니다.loans-ms1
로 변경합니다.8090
에서 8091
로 변경합니다.services:
loans:
image: eazybytes/loans:s8
container_name: loans-ms
ports:
- "8090:8090"
...
loans1:
image: eazybytes/loans:s8
container_name: loans-ms1
ports:
- "8091:8090"
...
수정된 docker-compose.yml
파일을 저장한 후, 다음 명령어를 실행하여 Docker Compose를 시작합니다:
docker-compose up -d
이 명령어는 모든 마이크로서비스와 함께 두 개의 Loans 인스턴스를 시작합니다. 실행이 완료되면 CPU 사용량이 증가할 수 있으므로 잠시 기다립니다.
Docker 컨테이너가 실행된 후, 웹 브라우저에서 Eureka 대시보드(http://localhost:8070
)를 열어 두 개의 Loans 인스턴스가 성공적으로 등록되었는지 확인합니다.
loans-ms
와 loans-ms1
이 각각 다른 포트에서 실행되고 있는지 확인할 수 있습니다.http://localhost:8070/eureka/apps
를 통해 API로 모든 인스턴스 세부 정보를 확인할 수 있습니다.이제 Postman을 사용하여 클라이언트 사이드 로드 밸런싱을 테스트할 수 있습니다.
FetchCustomerDetails
API를 호출할 때마다 로드 밸런싱이 이루어져 요청이 번갈아 가며 두 개의 Loans 인스턴스 중 하나로 전달됩니다.GET http://localhost:8080/api/fetchCustomerDetails?mobileNumber=1234567890
loan not found
오류를 받게 됩니다.이 방식으로 클라이언트 사이드 로드 밸런싱이 실제로 어떻게 작동하는지 확인할 수 있습니다.
클라이언트 사이드 로드 밸런싱이 어떻게 작동하는지 확인했습니다. Loans 마이크로서비스의 두 개의 인스턴스를 통해 로드 밸런싱의 실제 동작을 확인했으며, Eureka 서버를 통해 마이크로서비스 인스턴스가 어떻게 관리되고 있는지도 알 수 있었습니다. 다음으로 서버 사이드 서비스 디스커버리 및 로드 밸런싱에 대해 다룰 예정입니다.