minho Yoo's blog

쿠버네티스에 마이크로서비스 배포

16. 쿠버네티스에 마이크로서비스 배포 쿠버네티스는 서비스 객체와 kube-proxy 기반의 검색 기능을 내장 넷플릭스 유레카와 같은 별도의 검색 서비스는 필요 X 쿠버네티스의 검색 서비스를 사용하면 넷플릭스 유레카와 함께 사용한 넷플릭스 리본과 같은 클라이언트 라이브러리가 필요 X 넷플릭스 유레카 기반의 검색 서버를 쿠버네티스로 대체하려면 소...

쿠버네티스 소개

15. 쿠버네티스 소개 쿠버네티스 개념 소개 쿠버네티스는 컨테이너를 실행하는 서버 클러스터를 하나의 커다란 논리 서버로 만드는 컨테이너 오케스트레이션 쿠버네티스 클러스터의 주요 목적 중 하나는 컨테이너를 배포 및 실행하면서 불루/그린 배포나 카나리아 배포 등의 기술을 사용해 무중단 롤링 업그레이드를 지원하는 것 쿠버네티스는 하나 혹은 다수의 컨...

Resilience4j를 사용한 탄력성 개선

13. Resilience4j를 사용한 탄력성 개선 Resilience4j의 서킷 브레이커와 재시도 메커니즘 소개 재시도와 서킷 브레이커 메커니즘은 마이크로서비스와 같이 동기 방식으로 연결되는 소프트웨어 컴포넌트에 특히 유용함 서킷 브레이커 소개 서킷 브레이커는 다량의 오류를 감지하며 서킷을 열어 새 호출을 받지 않는다 서킷 브레이커는...

스프링 클라우드 게이트웨이를 에지 서버로 사용

10. 스프링 클라우드 게이트웨이를 에지 서버로 사용 시스템 환경에 에지 서버 추가 외부 클라이언트는 모든 요청을 에지 서버로 보냄 서비스를 에지 서버 뒤로 숨기려면 도커 컴포즈 파일에 있는 두 서비스의 포트 선언을 제거해야 함 스프링 클라우드 게이트웨이 설정 스프링 이니셜라이저로 스프링 부트 프로젝트 생성 s...

넷플릭스 유레카와 리본을 사용한 서비스 검색

9. 넷플릭스 유레카와 리본을 사용한 서비스 검색 서비스 검색 소개 DNS 기반 서비스 검색의 문제 라운드 로빈 방식 DNS를 이용해 검색하면 안 되는 이유?? DNS 클라이언트는 보통 리졸브된 IP 주소를 캐시하며, DNS 이름에 대응되는 IP 주소가 여러 개인 경우에는 동작하는 첫 번째 IP 주소를 계속 사용한다. 따라서 DNS 서버와 ...

리액티브 마이크로서비스 개발

7. 리액티브 마이크로서비스 개발 논블로킹 동기 API와 이벤트 기반 비동기 서비스의 선택 기준 일반적으로 견고하고 확장성 있는 마이크로서비스를 만들려먼 가능한 한 자율적으로 만드는 것이 중요 런타임 의존성을 최소화해야 함 -> 느슨한 결합(loose coupling) 따라서 동기 API 방식보다는 이벤트 기반 비동기 메시지 전달 방식을 ...