여니의 성장 diary
728x90
반응형

분산 시스템 (Distributed System)

  • 여러 대의 컴퓨터들이 네트워크를 통해 상호 연결되어 동작하는 컴퓨터 시스템
  • 데이터 처리, 자원 공유, 계산 등을 효율적으로 수행
  • 확장성과 신뢰성 향상
  • 데이터 일관성, 분산 트랜잭션, 장애 대응 등을 효과적으로 다루기 위해 적절한 아키텍처, 도구, 기술을 선택하여 구현하는 것이 중요

 

데이터 일관성 (Data Consistency)

  • 분산 시스템에서 여러 노드 간의 데이터가 항상 일관된 상태를 유지하는 것
  • 다수의 노드에서 동시에 데이터를 수정하거나 읽을 때 일관성 유지 어려움

[해결방법]

일관성 수준 선택

  • 강 일관성 (Strong Cosistency) : 모든 노드에서 일관된 데이터 제공
  • 약 일관성 (Eventual Cosistency) : 시간이 지난 후에는 일관성 보장

분산 락과 동기화 메커니즘 사용

  • 여러 노드에서의 동시 접근을 제어하기 위해 분산 락을 사용

 

분산 트랜잭션 (Distributed Transactions)

  • 여러 노드에서 수행되는 트랜잭션, 전체 트랜잭션을 원자적 (Automic)으로 실행하는 것

ACID 속성

  • 원자성 (Automicity) : 전체 트랜잭션이 성공 또는 실패로 처리
  • 일관성 (Consistency) : 트랜잭션 전후에 데이터베이스는 일관된 상태 유지
  • 고립성 (Isolation) : 여러 트랜잭션이 동시에 실행되도 서로 영향을 미치지 않도록 함
  • 지속성 (Durability) : 트랜잭션이 성공적으로 완료되면 그 결과가 영구적으로 저장

분산 트랜잭션 관리자 (Distributed Transaction Manager)

  • 분산 환경에서 트랜잭션의 일관성과 원자성을 보장하기 위한 중앙 제어자

 

장애 대응 (Fault Tolerance)

  • 시스템 내의 장애 또는 오류에 대응하여 시스템이 계속 동작하도록 하는 노력

장애 유형

  • 노드 고장 (Node Failure) : 특정 노드가 다운되는 이유
  • 네트워크 분리 (Network Partition) : 노드 간 통신이 불가능한 상황
  • 데이터베이스 오류 (Database Failure) : 데이터베이스 시스템의 일부분이 손상되는 경우

[해결방법]

복제와 샤딩 (Replication and Sharding)

  • 데이터의 복제를 통해 고가용성과 내고장성 확보
  • 데이터를 분할하여 여러 노드에 저장하는 샤딩 기법 사용

자동화된 감지와 복구

  • 모니터링 시스템을 통해 장애를 감지하고, 자동으로 복구하는 메커니즘 도입

잘못된 요청에 대한 격리 및 회복

  • 서킷 브레이커 판매 등을 사용하여 잘못된 요청이 전체 시스템에 영향을 미치지 않도록 격리 및 회복 기능 구현
728x90
반응형
profile

여니의 성장 diary

@pponyo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!