모놀리식 아키텍처는 중앙 집중식 로직으로 인해 긴 응답 시간, 블로킹 작업, 단일 장애점 문제를 야기하여 대규모 애플리케이션에 비효율적입니다. ⏳
마이크로서비스는 애플리케이션을 작고 독립적인 서비스로 분할하여 병렬 실행, 팀 협업 용이성, 서비스별 기술 스택 유연성을 제공하여 효율성과 유지보수성을 향상시킵니다. 🧩
Kafka는 마이크로서비스 간 실시간 비동기 통신을 가능하게 하는 인기 있는 오픈소스 이벤트 스트리밍 플랫폼으로, 서비스 간의 결합도를 낮춥니다. 🔗
Kafka를 통한 비동기 처리는 사용자가 즉각적인 응답을 받으면서(예: 3초), 백엔드 작업(결제, 주문, 이메일, 분석)이 독립적이고 동시에 진행되어 긴 대기 시간을 없앱니다. 🚀
Kafka는 브로커(서버), 토픽(메시지 카테고리), 프로듀서(토픽에 메시지 전송), 컨슈머(토픽에서 메시지 읽기)로 구성되어 이벤트 기반 아키텍처를 지원합니다. 📨
Kafka는 메시지를 저장하여 서비스가 일시적으로 중단되더라도 다시 온라인 상태가 되면 놓친 메시지를 처리할 수 있도록 보장하여 데이터 손실을 방지하고 내결함성을 제공합니다. 🛡️
토픽 내 파티션은 메시지를 분산하고 병렬로 소비할 수 있게 하여 처리량을 높이고, 파티션 내 메시지 순서 유지 및 특정 컨슈머 그룹을 통한 유연한 데이터 처리를 가능하게 합니다. 📊
Docker와 Docker Compose를 사용하여 로컬 Kafka 서버와 Kafka UI를 쉽게 설정할 수 있어 Kafka 구성 요소를 시각적으로 관리하고 이해하기 용이합니다. 🐳
전자상거래 결제 흐름(결제 -> 주문 -> 이메일 -> 분석)을 payment successful, order successful, email successful 토픽을 활용한 비동기 이벤트 기반 시스템으로 전환하는 실제 예시를 통해 Kafka 적용 방법을 보여줍니다. 🛒