215
5
장
마이크로서비스의 통신 구현
언급한 바와 같이
DNS
는 잘 알려져 있고 광범위하게 지원되지만 한두 가지 단점이 있다. 따라
서 더 복잡한 것을 선택하기 전에 자신에게 적합한지 검토해야 하며, 하나의 노드만 있는 상황
에서는
DNS
가 호스트를 직접 참조하는 것이 좋다. 하지만 둘 이상의 호스트 인스턴스가 필요
한 상황에서는
DNS
엔트리가 개별 호스트의 서비스 시작 및 중단을 적절히 처리할 수 있는 로
드 밸런서로 확인되도록 하라.
5.9.25.9.2
동적 서비스 레지스트리 동적 서비스 레지스트리
고도의 동적 환경에서 노드를 찾는 방법으로서
DNS
가 약점을 드러내자 여러 대체 시스템이
등장했다. 그중 대부분은 서비스가 일부 중앙 레지스트리에 등록한 후 등록된 서비스를 조회하
는 기능을 제공한다. 종종 이와 같은 시스템은 단순히 서비스 등록과 디스커버리를 제공하는
것 이상을 수행한다. 이는 좋은 것일 수도 있고 그렇지 않을 수도 있다. 이 분야는 경쟁이 치열
하므로 사용 가능한 선택지를 이해하도록 몇 가지만 살펴본다.
주키퍼
주키퍼
Zookeeper
는 원래 하둡
Hadoop
프로젝트의 일부분으로 개발됐으며 구성
configuration
관리, 서비
스 간 데이터 동기화, 리더 선출, 메시지 큐, (유용한 ) 네이밍 서비스 등 모두 열거하기 어려울
만큼 많은 사례에 사용됐다.
많은 유사한 형태의 시스템과 마찬가지로 주키퍼도 다양한 보장을 제공하고자 클러스터에서
여러 노드를 실행한다. 이 말은 최소한
3
개의 주키퍼 노드가 실행될 것을 예상해야 한다는 ...