Closed kth990303 closed 8 months ago
가능한 한 사람들이 운영 시스템에 가까이 가지 못하게 하는 것이 가장 좋다.
(p.159)
파일 시스템이 가득 차자마자 이 조악한 예외 처리기는 미쳐버려서 계속 증가하는 예외 스택을 기록하려고 했다. 여러 개의 스레드가 자신의 헛된 예외를 기록하려 했기 때문에 이 애플리케이션 서버는 잠시 동안이나마 전체 CPU 8개를 사용할 수 있었다. 피보나치 수열처럼 일정 비율로 늘어나는 예외는 모든 가용한 메모리를 빠르게 소모했다. 이는 곧 비정상 종료로 이어졌다.
(p.162)
코드가 '200 OK', '401 인증 필요', '302 임시 이동'이 아닌 경우 클라이언트는 아마도 응답을 치명적인 오류로 처리할 것이다. 많은 클라이언트가 다른 200 계열의 코드를 오류로 취급하기도 한다.
(p.172)
격벽이라는 용어의 유래
물리적으로 독립된 두 서버는 비정상 종료가 전파되지 않음
가상화된 두 서버는 같은 물리 기기에서 실행될 수 있으므로, 비정상 종료가 전파될 수 있음
미션 크리티컬 서비스의 격벽 예시 (독립적인 서버 팜으로 분리)
Foo로 인해 Baz에 결함이 발생하면 Bar도 영향을 받음 → Foo 전용 Baz와 Bar 전용 Baz로 분리하면 결함이 전파되지 않음 (단, 두 Baz가 공통 의존하는 DB에서는 교착 상태 발생 가능하다는 한계 존재)
자연스러운 경계를 식별하려면, 아래 2가지 요소를 동시에 고려
소프트웨어 정의(software-defined) 부하 분산기를 사용하면 영구적인 격벽이 아닌, 동적인 격벽을 생성할 수 있음
더 작은 규모에서의 격벽
5.4.1 데이터 정리
5.4.2 로그 파일
5.4.3 메모리 전용 캐시
5.6.1 크기 제한
5.6.2 교체 속도
5.6.3 감독
5.6.4 재통합
logrotate
)시켜 언젠가는 꼭 정리되도록 하기악영향도: 무응답 < 느린 성공 응답 < 느린 실패 응답
Let it crash
철학
실제 어플리케이션을 호출하면, 실제 어플리케이션이 일부러 생성할 수 있는 오류만 테스트할 수 있다.
(p. 179)
주제
'5장 - 안정성 패턴'을 읽고 내용을 요약하거나,
중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요
연관 챕터
16
@caffeine-library/readers-release-everything