기술적 의사 결정
초기 프로젝트 설계 시, 대규모 트래픽을 처리하고 선착순 구매를 지원하는 시스템을 설계했다.
그래서 추후 스케일 아웃을 고려하여 로드 밸런싱을 염두에 두고 Kafka를 선택했다.
비동기 처리를 위해 Kafka로 이벤트를 발행하고, 이를 통해 시스템의 높은 동시성을 유지하며, 트래픽 부하를 효율적으로 분산시킬 수 있도록 설계하였다. Kafka의 비동기 메시징 시스템을 활용함으로써, 결제 처리와 같은 중요한 작업을 병렬로 처리할 수 있어 시스템의 응답성과 확장성을 높일 수 있었다.
결제 로직
전체 동기적으로 순차적 수행되던 로직을 kafka를 통해 비동기적으로 이벤트 발행하는 방식으로 수정했다.
성능개선 결과
10000건 요청 시 성능개선 확인할 수 있었다!
TPS( Throughput: 초당 처리한 요청 수 )
58.5/sec -> 82.4/sec (약 40.9%성능 개선)
'프로젝트 > Springboot-MSA- PreOrder' 카테고리의 다른 글
[Project] 프로젝트 회고 (0) | 2024.09.18 |
---|---|
[Project] Redis 캐싱 성능개선 (0) | 2024.09.01 |
[Project] 데이터 동시성 문제 해결 (4) | 2024.08.26 |
[Project] 서비스 장애 대응 Circuit Breaker 구현 (1) | 2024.08.26 |
[Project] API Gateway (0) | 2024.08.18 |