You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »


Netflix OSS

  • 50개 이상의 사내 프로젝트를 오픈소스로 공개
  • 플랫폼(AWS) 안의 여러 컴포넌트와 자동화 도구를 사용하면서 파악한 패턴과 해결 방법을 블로그, 오픈 소스로 공개

출처: https://netflixtechblog.com/netflixoss-season-2-episode-1-b477d8879799


Spring Cloud

  • Spring Cloud 란
  • 교집합이 spring-cloud-netflix


모놀리틱의에서의 의존성 호출


Failure as a First Class Citizen

  • 분산 시스템, 특히 클라우드 환경에선 실패(Failure) 는 일반적인 표준이다.
  • 모놀리틱엔 없던(별로 신경 안썼던..) 장애 유형
  • 한 서비스의 가동율(uptime) 최대 99.99%
    • 99.99^30 = 99.7% uptime
    • 10 억 요청 중 0.3% 실패 = 300만 요청이 실패
    • 모든 서비스들이 이상적인 uptime 을 갖고 있어도 매 달마다 2시간 이상의 downtime 이 발생

출처: https://github.com/Netflix/Hystrix/wiki


Circuit Breaker - Hystrix

  • Latency Tolerance and Fault Tolerance for Distributed Systems

Hystrix 적용하기

@HystrixCommand 
public String anyMethodWithExternalDependency() {
 URI uri = URI.create("http://172.32.1.22:8090/recommended"); 
 String result = this.restTemplate.getForObject(uri, String.class); 
 return result; 
}
  • 위의 메소드를 호출할 때 벌어지는 일
    • 이 메소드 호출을 “Intercept” 하여 “대신” 실행
    • 실행된 결과의 성공 / 실패 (Exception) 여부를 기록하고 “통계”를 낸다. - 통계 ??
    • 실행 결과 “통계”에 따라 Circuit Open 여부를 판단하고 필요한 “조치”를 취한다.









  • No labels