architecture

·architecture
1. 2PC (Two-Phase Commit)코디네이터와 여러 데이터베이스 간의 합의를 통해 트랜잭션 커밋/롤백을 결정하는 방법이다.phase1 : 모든 데이터베이스가 커밋이 가능한 상태 또는 불가능한 상태를 코디네이터에게 전달phase2 : 코디네이터가 커밋 또는 롤백을 수행한다.장점분산 환경에서의 데이터 정합성 및 원자성을 보장할 수 있다.단점미지원 DBMS - 미지원 DBMS 인 경우, 사용이 불가하다.이종 데이터베이스 호환성 - 이종(heterogeneous) 데이터베이스 환경에서 사용에 어려움이 있음코디네이터에 의존적 - 장애 상황에 따른 각 데이터베이스의 커밋/롤백 여부를 스스로 결정할 수 없음트랜잭션 블로킹(blocking) - 다른 데이터베이스 트랜잭션이 완료될 때까지 대기해야 하는 경우가..
·architecture
[1] 아키텍쳐 비교(1) 레이어드 아키텍처 (layered architecture)상위 계층 → 하위 계층 호출의 단방향 흐름을 유지한다.상위 계층에 필요한 기능을 하위 계층의 구현으로 전달한다.하위 계층의 변경이 상위 계층에 영향을 미친다. DB 계층이 변경되면 Service 계층이 변경될 수 있다.DIP ❌ , OCP ❌DIP :  단방향으로 의존하고 있으므로 DIP 는 만족하지 않는다.OCP : 직접 의존으로 하위 계층에 변경에 따라 상위 계층이 함께 변경될 수 있기 때문에 OCP 를 위반한다. (2) 헥사고날 아키텍처모든 의존 방향이 도메인으로 단방향성으로 흐르고 있는 구조이다.장점 : 비즈니스가 중심적으로 보호되고 변경에 견고하다.Adapter & Port 패턴 : 통해 데이터 계층과 API ..
·architecture
1. 배치 vs 스트림배치 프로세스는 언제 읽기 작업이 완료되었는지 알 수 있다.하지만 실제로는 많은 데이터는 시간이 지남에 따라 점진적으로 도착하기 때문에 무제한이다.일반적으로 스트림(stream)은 시간이 지남에 따라 점진적으로 제공되는 데이터를 의미이다. 2. 이벤트 스트림 전송배치 작업에서 또한 스트리밍과 유사한 형태로 작업할 수 있다.파일이나 DB 를 통해 생산자에서 파일이나 DB로 쓰기 작업을 하고, 소비자로서 주기적인 폴링을 통해 작업을 처리할 수 있다.낮은 지연의 요구 사항에서 주기적인 폴링 비용으로 인해 소비자에게 알림을 전달하는 방법이 소비자에게 전달하는 방법이 필요하다.이벤트는 JSON, text string, binary form 형태로 인코딩되고 저장된다. 3. 메시징 시스템일반적..
·architecture
1. 일관성, 정합성, 무결성 ??(1) 일관성일관성 : 동일한 시스템 내에서 데이터가 서로 모순되지 않는 것을 의미한다.최종적 일관성(eventual consistency) : 불특정 시간동안 기다리면 결국 모든 읽기 요청이 같은 값을 반환한다는 뜻이다. 복제 데이터베이스는 대부분 최소한 최종적 일관성을 제공한다.이런 약한 보장에도 불구하고 eventual consistency 는 성공적인 애플리케이션과 수익성 있는 비즈니스를 지원한다.(2) 정합성정합성 : 여러 시스템에서 데이터가 정확하고 일관되게 유지하는 것을 의미한다.일관성과 정합성의 차이점 : 서로 다른 시스템 간의 데이터를 다루는 반면, 데이터 일관성을 동일한 시스템 내의 데이터를 다룬다.(3) 무결성무결성 : 데이터가 정확하고 유효한 상태를..
·architecture
1. 분산 시스템에서의 부분 결함분산 환경에서 결함이 발생하는 원인은 크게 네트워크와 시계 및 타이밍 문제로 나뉜다. 분산 시스템은 기본적으로 부분 장애 가능성을 염두하고 내결함성 매커니즘을 도입해야 한다. 분산 시스템은 부분 장애로 인해 비결정적인 연산이 발생할 수 있기 때문이다. 결정적인 연산은 하드웨어가 올바르게 동작하면 같은 연산은 항상 같은 결과를 낸다는 의미이다.Internet protocol(IP, 3계층) 은 신뢰성이 낮다. 패킷의 누락, 지연, 중복, 순서 불일치 문제가 발생할 수 있다. TCP(Transmission Control Protocol) 는 손실된 패킷 재전송, 중복 제거, 순서 재조립을 통해 IP 에서의 낮은 신뢰성을 전송 계층에서 보장한다. 하지만, 네트워크 지연에 관한 ..
·architecture
가상 면접 사례로 배우는 대규모 시스템 설계 기초 2 - 호텔 예약 시스템을 정리한 내용입니다.1. 설계 범위 확정[1] 규모 추정요구 사항5000개의 호텔에 100만 개 객실을 갖춘 호텔 체인을 위한 웹사이트 를 구축한다.평균적으로 객실이 70% 가 사용 중이고, 평균 투숙 기간은 3일로 가정한다.대략 10% 사용자가 다음 단계로 진행하고, 90% 사용자는 최종 단계에 도달하기 전에 이탈결론일일 예상 건수 : 1백만 * 0.7 / 3 = 233,333 (올림 하여 약 24,000)초당 예약 건수(TPS) : 240,000 / 10^5(하루에 10^5초로 계산) =~ 3객실 상세 QPS = 300예약 상세 QPS = 30객실 예약 QPS = 3 [2] 예약 기능 요구사항대금 결제 방식 : 대금은 예약 시..
cooper25
'architecture' 카테고리의 글 목록