중앙화된 로드밸런싱의 효과를 낼 수 있는 방법은 여러 가지가 있다. 서비스 ID를 호스트나 포트에 논리적으로 연결할 수 있는데, 서비스 레지스트리가 이런 일에 적합하다. 서비스 레지스트리의 주요 단점은 침투적 방식이라서 코드에 변경이 필요하다는 점이다. 애플리케이션 코드가 서비스 레지스트리에 대해 알고 있어야 한다. 궁극적으로 서비스 레지스트리는 클라우드의 전화번호부와 같다. 서비스 레지스트리는 서비스 인스턴스와 서비스가 제공하는 API를 내용으로 하는 테이블이다. 복잡하고 많은 기능을 제공하는 서비스 레지스트리도 있지만, 대부분의 서비스 레지스트리에는 적어도 어떤 서비스가 실행되고 있으며 어떤 서비스 인스턴스가 살아있는지 확인할 수 있는 기능이 있다. 서비스 레지스트리는 물리적인 제약이 많으며 CAP(..
마이크로서비스 아키텍쳐에서 API Gateway는 실제 서비스 요청에 대한 진입점으로서 중요한 역할을 수행한다. API Gateway를 통해 실제 요청에 대한 로드 밸런싱, 인증, 스로틀링, 모니터링 등을 수행할 수 있다. 오픈 소스 진영에서는 전통적으로 HAProxy, NGINX가 대표적이며, 보다 애플리케이션에 특화된 Kong이 존재한다. Netflix Zuul은 Java 언어로 개발된 API Gateway이자 HTTP Reverse Proxy이다. 즉, 마이크로서비스 아키텍쳐에서 여러 클라이언트 요청을 적절한 서비스로 프록시하거나 라우팅하기 위한 서비스이다. API GateWay가 필요한 이유 중복의 제거로 인한 관리 안정성의 확보. API Gateway 패턴을 도입하면 마이크로서비스 간에 반복적으..
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식이다. 마이크로서비스를 전통적인 모놀리식(Monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식이다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미한다. 온라인 구매 사이트 예시 - 제품을 검색하기 위해 사이트에 있는 검색 창을 사용 → 서비스 - 구매자 선호도 데이터베이스에서 추출한 관련 상품에 대한 추천 내역 조회 → 서비스 - 온라인 장바구니에 항목을 추가 기능 → 서비스 사용중인 서비스 API GateWay - ZUUL Statistics Service - RIBBO..