
개요도대체 서킷 브레이커가 무엇이고 이걸 왜 쓰는 걸까요...? 마이크로서비스 아키텍처에서 서비스 간의 장애 전파를 막기 위한 패턴이라고 하는데...오늘은 같이 공부하며 서킷 브레이커를 왜 사용해야 하는지에 대한 이해와 간단하게 적용을 한 번 해보고자 합니다. 1. 서킷 브레이커의 탄생 배경서킷 브레이커는 전기 회로에서 과부하를 방지하기 위한 장치에서 이름을 따왔습니다. 마이크로서비스 아키텍처가 대두되면서 서비스들이 분산되고, 서로 다른 네트워크 환경에서 통신하게 되었습니다.하지만 네트워크 지연이나 장애로 인해 하나의 서비스 장애가 다른 서비스로 전파되어 전체 시스템의 안정성을 해치는문제가 발생했습니다.이러한 문제를 해결하기 위해 마틴 파울러는 서킷 브레이커 패턴을 제안했습니다. 이는 서비스 간의 ..

트랜잭셔널 아웃박스 패턴이란?마이크로서비스 환경에서는 데이터베이스와 메시지 브로커를 함께 사용하는 경우가 많습니다. 예를 들어 콘서트 예매 시스템에서 결제가완료되면 사용자에게 알림을 보내야 하는데, 이 과정에서 데이터베이스 트랜잭션과 메시지 발행이 원자성을 가져야 합니다.트랜잭셔널 아웃박스 패턴은 이벤트를 바로 메시지 브로커로 보내지 않고, 먼저 데이터베이스의 아웃박스 테이블에 저장한 후 별도의프로세스가 이를 읽어서 메시지 브로커로 전송하는 방식입니다. 1. 기존 구현의 문제점기존 시스템은 결제 처리와 동시에 카프카로 메시지를 직접 전송했습니다@Transactionalpublic PaymentResult processPayment(PaymentCommand command) { Payment paym..