일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로젝트
- 운동
- Writing
- Daily Challenge
- 영어공부
- 10분
- 리얼 클래스
- 3줄정리
- 링피트
- realclass
- 개발자
- 파비최
- FIT XR
- leetcode
- Problem Solving
- 영어원서읽기
- 30분
- 쓰릴오브파이트
- 잡생각
- 뭐든
- 만화도
- 사이드
- 매일
- 스탭퍼
- 화상영어
- 미드시청
- 읽기
- English
- 괜찮음
- 월간
Archives
- Today
- Total
파비의 매일매일 공부기록
파이썬으로 살펴보는 아키텍처 패턴 - 11장 #2 본문
11.2 분산 시스템에서 오류 처리하기
- '모든 것이 망가진다'는 소프트웨어 엔지니어링에서 일반적인 규칙.
- 두 가지를 함께 바꿔야 하는 경우를 결합됐다고 함.
- 시스템의 모든 부분이 동시에 제대로 작동할 때만 정상으로 작동하는 경우를 시간적 결합이라고 함.
- 시스템이 커지면 시스템 부품 중 일부의 성능이 나빠질 확률이 지수적으로 높아짐.
11.3 대안: 비동기 메시징을 사용한 시간적 결합
- 적절한 결합을 얻기 위해서는 명사가 아닌 동사로 생각해야 함.
- 도메인 모델은 비즈니스 프로세스를 모델링하기 위함이며 어떤 물건에 대한 정적인 데이터 모델이 아닌 동사에 대한 모델임.
- 사물을 각 행위에 대해 구분하면 어떤 시스템이 어떤 일을 하는지에 대해 생각하기가 쉬움.
- 애그리게이트와 비슷하게 마이크로 서비스도 일관성 경계여야 함.
- 두 서비스 사이에는 최종 일관성을 받아들일 수 있고, 동기화된 호출에 의존하지 않아도 됨.
- 각 서비스는 외부 세계에서 커맨드를 받고 결과를 저장하기 위해 이벤트를 발생시킴.
- 이런 이벤트를 리슨 하는 다른 서비스는 워크플로의 다음 단계를 촉발함.
- 각 부분이 서로 독립적으로 실패할 수 있으면 잘못된 동작이 발생했을 때 처리하기가 더 쉬움.
- 시스템 사이의 결합 강도를 감소시키면 처리 과정을 이루는 연산 순서를 바꾸거나 새로운 단계를 도입하고 싶을 때 이를 지역적으로 할 수 있음.
반응형
'Study > Python' 카테고리의 다른 글
파이썬으로 살펴보는 아키텍처 패턴 - 12장 #1 (0) | 2021.10.29 |
---|---|
파이썬으로 살펴보는 아키텍처 패턴 - 11장 #3 (0) | 2021.10.28 |
파이썬으로 살펴보는 아키텍처 패턴 - 11장 #1 (0) | 2021.10.26 |
파이썬으로 살펴보는 아키텍처 패턴 - 10장 #2 (0) | 2021.10.25 |
파이썬으로 살펴보는 아키텍처 패턴 - 10장 #1 (0) | 2021.10.24 |
Comments