이것은 Microservice를 사용하여 어플리케이션을 작성하는 것에 대한 시리즈 중에서 4번째 article이다. 첫번째 article에서는 Microservice Architecture 패턴을 소개하고, microservice를 사용할 때의 이점과 단점에 대해서 논의했다. 시리즈 중에서 두번째와 세번째 article에서는 microservice architecture에서 통신의 다양한 측면에 관하여 설명했다. 이번 article에서는, 서비스 검색과 밀접하게 연관된 문제에 대해서 탐험할 것이다.
Why Use Service Discovery?
(왜 서비스 검색을 사용하는가?)
REST API나 Thrift API를 가진 서비스를 호출하는 어떤 코드를 작성한다고 상상해 보자. 요청을 하기 위해서는, 서비스 인스턴스의 네트워크 상의 위치(IP 주소와 port)를 알아야 한다. 물리적인 하드웨어에서 실행되는 전통적인 어플리케이션에서는, 서비스 인스턴스의 네트워크상 위치는 상대적으로 정적이다. 예를 들면, 때때로 업데이트되는 설정 파일에서 네트워크 위치를 읽을 수 있다.
하지만, 현대의 클라우드 기반 microservice 어플리케이션에서는 다음 다이어그램에서 보여지는 것처럼 해결할 훨씬 더 어려운 문제가 있다.
서비스 인스턴스에는 네트워크 위치가 동적으로 할당된다. 더우기, 서비스 인스턴스의 모음은 auto-scaling, 장애, 업그레이드 때문에 동적으로 변경된다. 따라서, 클라이언트 코드에는 더 정교한 서비스 검색 메커니즘이 사용되어야 한다.
서비스 검색 패턴에는 클라이언트 측면의 검색과 서버 측면의 검색, 2가지 유형이 있다. 먼저 클라이언트 측면의 검색을 살펴보자.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/765