본문 바로가기
반응형

개발/아키텍처30

CDC(Change Data Capture) CDC (Change Data Capture)는 데이터베이스의 변경사항을 실시간으로 추적하고, 이러한 변경사항을 다른 시스템, 데이터베이스, 애플리케이션으로 전송하는 기술입니다. CDC는 데이터베이스에서 발생하는 모든 삽입(insert), 갱신(update), 삭제(delete) 작업을 감지하고, 이 정보를 실시간으로 다른 시스템에 제공하여 데이터 동기화 및 분석을 지원합니다. CDC의 작동 원리 변경사항 감지 CDC는 데이터베이스의 변경사항을 실시간으로 감지합니다. 이는 데이터베이스의 트랜잭션 로그, 트리거, 또는 다른 메커니즘을 통해 수행될 수 있습니다. 이벤트 캡처 및 전송 감지된 변경사항은 이벤트 형태로 캡처되며, 이 이벤트들은 메시징 시스템(예: Apache Kafka)을 통해 다른 시스템으로 .. 2023. 11. 29.
사가 패턴 사가 패턴(Saga Pattern)은 마이크로서비스 아키텍처에서 사용되며, 분산 시스템에서의 긴 트랜잭션을 관리하는 방법을 제공합니다. 이 패턴의 핵심은 각 마이크로서비스가 독립적인 트랜잭션을 실행하고, 트랜잭션 간의 일관성을 유지하는 것입니다. 이를 위해 다음과 같은 세부 사항들이 중요합니다: 사가의 구성 로컬 트랜잭션 각 마이크로서비스는 자체 데이터베이스에 대해 로컬 트랜잭션을 실행합니다. 이 트랜잭션은 독립적으로 완료되며, 다른 서비스의 트랜잭션과는 직접적인 연결이 없습니다. 컴펜세이션 트랜잭션 이는 기본 트랜잭션이 실패했을 때, 이전에 성공한 트랜잭션을 취소하거나 수정하는 역할을 합니다. 각 로컬 트랜잭션에는 해당 컴펜세이션 트랜잭션이 연결되어 있어야 합니다. 통신 방식 비동기 메시징 사가는 일반.. 2023. 11. 27.
카나리아 배포 카나리아 배포(Canary Deployment)는 새로운 버전의 소프트웨어를 제한된 사용자 그룹에게 점진적으로 배포하는 방식입니다. 이 용어는 카나리아 새가 과거 탄광에서 가스 유출을 감지하는 데 사용되었던 것에서 유래했습니다. 비슷한 방식으로, 카나리아 배포는 새 소프트웨어 버전의 안정성과 성능을 실제 사용 환경에서 테스트하여 위험을 최소화합니다. 카나리아 배포의 주요 단계 초기 배포 새 버전의 애플리케이션을 소수의 사용자 또는 서버에 배포합니다. 이 단계에서는 일반적으로 전체 사용자의 소수만이 새 버전에 접근합니다. 모니터링 및 평가 새 버전의 성능, 안정성, 그리고 기타 중요 지표를 면밀히 모니터링합니다. 이를 통해 버그, 성능 문제, 사용성 이슈 등을 식별할 수 있습니다. 점진적 확대 초기 테스트.. 2023. 11. 17.
MSA 통신 패턴 (동기, 비동기)과 Apache Kafka, Zookeeper 마이크로서비스를 공부하면 메시지 기반의 느슨한 결합이라는 키워드를 확인할 수 있습니다. 메시지 큐와 메시지 브로커라는 개념이 사용되며 그 유명한 "아파치 카프카"가 등장합니다. 아파치 카프카는 왜 쓰는지 궁금하여 MSA 통신 패턴에 대해서 공부해보려고 합니다. 마이크로서비스 통신 패턴 동기 통신 방식 동기(synchronous) 방식은 요청(request)하면 바로 응답(response)이 오는 방식을 말한다. 바로 요청하면 응답이 오는 직관적인 방식이기 때문에 가장 많이 쓰이고 구현하기 쉽다. 그렇지만 호출을 받은 마이크로서비스에 장애가 생긴다면 어떻게 될까? 요청을 보낸 서비스는 반응이 올 때까지 기다리게 되고, 반응이 오지 않으면 계속 기다리면서 재호출하게 된다. 여러 서비스 간의 연계를 통해 업무.. 2022. 2. 27.
반응형