MSA 사이드 프로젝트를 진행하면서 Eureka 사용하면서
레지스터리,디스커버리가 무엇인지 알아보겠습니다
서비스 레지스터리는 각 서비스의 위치 정보를 유지하고 관리하는 중앙 데이터베이스입니다. 각 마이크로서비스는 네트워크를 통해 서로 통신하는데 서비스 인스턴스들은 동적으로 생성되고 사라지기 때문에 이들의 위치를 추적하는 시스템이 필요합니다.
서비스 레지스터리는 이러한 서비스의 주소 (IP 및 포트)를 중앙화하여 저장하고 이를 통해 다른 서비스가 접근할 수 있도록 합니다.
서비스 디스커버리는 레지스터리에 등록된 서비스를 찾는 방법으로, 서비스가 자신의 위치나 주소를 동적으로 알지 못하는 환경에서 필요합니다. 서비스 디스커버리 기능을 통해 클라이언트는 직접 레지스터리로부터 위치 정보를 조회하거나, 로드 밸런서 또는 프록시 서버를 통해 필요한 서비스를 찾을 수 있습니다.
| 구분 | 서비스 레지스터리 | 서비스 디스커버리 |
|---|---|---|
| 역할 | 서비스 위치 정보 관리 | 위치 정보 조회 및 서비스 호출 |
| 작동 방식 | 서비스가 자신을 등록하고 제거 | 클라이언트 또는 서버가 위치를 확인하여 요청 |
| 종류 | 중앙 집중형 데이터베이스 (Eureka, Consul 등) | 클라이언트/서버 사이드 디스커버리 |
| 예시 | Eureka, Consul, Zookeeper | Ribbon (클라이언트), API Gateway (서버) |
서비스 레지스터리가 없으면 서비스 위치를 관리하기 어렵고, 디스커버리가 없으면 동적 주소를 추적하여 서비스에 연결할 수 없습니다. 두 개념이 협력하여 안정적이고 동적으로 연결되는 마이크로서비스 환경을 지원합니다.