개요
MSA 와 같은 분산 환경에서 트래픽의 흐름은 서비스 간의 원격 호출로 이루어짐 이 때 서비스 호출은 IP 주소와 포트를 이용하는 방식이 됨.
온프레미스가 아닌 클라우드 환경에서 서비스가 동적으로 생성되던가 업데이트로 인한 변화 또 오토 스케일링 등으로 인해 생성 될 경우 IP 주소가 달라 질 수 있음.
- 서비스 클라이언트가 서비스를 호출할 때 서비스의 위치를 알아낼 수 있는 기능이 필요하게 됨
- 이를 서비스 디스커버리라 함
종류
Client Side Discovery
서비스 클라이언트가 서비스 registry 에서 서비스의 위치를 찾아서 요청을 보냄
Server Side Discovery
호출이 되는 서비스 앞에 일종의 프록시 서버를 넣는 방식 프록시 서버가 Service registry 를 통해 등록된 서비스의 위치를 리턴하고 이를 기반으로 라우팅함
Service Registry
- DNS 레코드에 존재하는 호스트명에 여러개의 IP 를 등록하는 방식으로 구현 가능
- 하지만 DNS는 레코드 삭제시 업데이트 되는 시간이 소요됨
- ZooKeeper나 etcd 와 같은 서비스를 이용할 수 있음
'기타' 카테고리의 다른 글
[API 명세 포멧을 이용한 API 디자인] (0) | 2024.02.21 |
---|---|
[IntelliJ] - 단축키 (0) | 2024.02.21 |
[인과추론] - 개요 (1) | 2024.02.14 |
[UGC moderation] (0) | 2024.02.08 |
[IAC] (0) | 2024.01.27 |