반응형
넷플릭스 스택의 기원
- 넷플릭스는 온라인 비디오 스트리밍 분야의 고성능과 확장성을 충족하기 위해 신규 플랫폼 개발
- 넷플릭스 홈페이지 : https://www.netflix.com
- 최초의 마이크로서비스 아키텍처 중 하나가 됨.
- 오픈소스 프로젝트
- 넷플릭스 스택을 발표.
- 자바를 기반으로 함.
- 스프링 클라우드에 통합되며, 스프링 부트와 함께 사용하기에 훨씬 쉬워짐.
- 예시
- 참고 페이지 : https://github.com/ewolff/microservice
-
- 아키텍처
- 3개의 마이크로 서비스로 구성
- 카탈로그 마이크로서비스
- 상품에 대한 정보를 관리
- 고객 마이크로서비스
- 고객의 데이터를 저장
- 주문 마이크로서비스
- 새로운 주문을 수신 받음
- 카탈로그 / 고객 마이크로 서비스를 사용함.
- 카탈로그 마이크로서비스
- 마이크로서비스는 사용자와 상호작용할 수 있는 자체 웹 인터페이스 존재함
- 마이크로서비스 끼리는 REST를 통해서 통신함.
- 3개의 마이크로 서비스로 구성
- 아키텍처
라이선스
- 아파치 라이선스, 넷플릭스 스택의 컴포넌트는 모두 오픈소스
넷플릭스 스택의 구성
- 유레카(Eureka)
- 서비스 탐색
- 자바 클라이언트를 제공하고, 자바에 중점을 두고 있지만, 다른 언어에서 사용할 수 있는 REST API와 라이브러리도 제공함.
- 클라이언트 캐싱과 함께 사용할 수 있어서 매우 빠르고 탄력적임.
- 참고페이지 : https://github.com/Netflix/eureka/wiki
- 주울(Zuul)
- 라우팅 솔루션
- 주울의 동적 필터는 매우 유연함.
- 주울은 마이크로서비스를 찾기 위해 유레카가 필요함.
- 참고페이지 : https://github.com/Netflix/zuul/wiki
- 립본(Ribbon)
- 로드 밸런싱
- 클라이언트 부분의 로드 밸런싱 구현.
- 자바라이브러리이기에 다른 언어에서는 립본과 함께 사용하기 어려움. 립본 외에 로드 밸런싱 영역의 대안으로 기존의 수많은 로드 밸러서가 존재함.
- 서비스 탐색을 위해 유레카를 의존하고 있으나, 컨설을 사용할 수 도 있음.
- 참고페이지 : https://github.com/Netflix/ribbon/wiki
- 히스트릭스(hystrix)
- 복원력
- 마이크로서비스 간 동기 통신을 사용할 때 하나의 마이크로서비스에서 장애가 발생한다 하더라도 다른 마이크로서비스에도 장애가 발생하지 않도록 하는 것은 중요함.
- 히스트릭스의 구현
- 타임아웃(timeout)
- 마이크로서비스가 다른 마이크로 서비스를 위해 너무 오래 기다리는 것을 방지함.
- 빠른 실패(fail fast)
- 자원이 블로킹되는 시간을 줄이기위해서, 가능한 한 빨리 에러를 생성하는 것.
- 서킷브레이커(circuit breaker)
- 쉽게 설명하자면, 주택의 전기 시스템에서 사용되는 퓨즈와 유사함.
- 모니터링
- 히스트릭스 대시보드를 통해서 데이터를 웹페이지에 표시 가능함으로써 현재 시스템에서 발생한 상황을 보여줌.
- 타임아웃(timeout)
- 참고페이지 : https://github.com/Netflix/hystrix/wiki
결론
- 넷플릭스 스택에서 마이크로서비스 아키텍처를 구축할 수 있는 다양한 프로젝트를 제공함.
- 넷플릭스 스택의 서버 구현은 자바로 작성됐기 때문에 넷플릭스 스택의 서버와 마이크로서비스는 JAR 파일로 압축할 수 있음.
- 스프링 클라우드 때문에 넷플릭스 스택의 서버를 일관성 있게 설정 가능 함.
728x90
300x250
'좋아하는 것_매직IT > 10.microservice' 카테고리의 다른 글
16.마이크로서비스, 마이크로서비스 플랫폼을 알아보자. (0) | 2021.01.13 |
---|---|
15.마이크로서비스, 컨설과 아파치 httpd서버를 이용한 동기 마이크로서비스 시스템을 알아보자. (0) | 2021.01.12 |
12.마이크로서비스, Atom & REST 비동기 통신은 무엇일까? (0) | 2021.01.12 |
11.마이크로서비스, 카프카에 대해서 알아보자. (0) | 2021.01.12 |
10.마이크로서비스, 메시지 지향 미들웨어(MOM)란? (0) | 2021.01.12 |