minho Yoo's blog

Resilience4j를 사용한 탄력성 개선

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

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

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

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

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

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

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

도커를 사용한 마이크로서비스 배포

4. 도커를 사용한 마이크로서비스 배포 도커 소개 도커는 가상머신을 대체하는 경량 컨테이너 개념을 일반화 컨테이너는 리눅스 호스트에서 실행되며, 리눅스 네임스페이스를 이용해서 사용자, 프로세스, 파일 시스템, 네트워킹 등의 전역 시스템 리소스를 컨테이너에 분배 또한 리눅스 제어 그룹을 사용해 컨테이너가 사용할 수 있는 CPU와 메모리를 제한 ...