이전 자료
Poppin 서비스 알림 처리 속도 개선 : kafka 도입기 (1)
<aside>
💡
본격적으로 기존 FCM 아키텍처에 Kafka를 도입하기 이전에, 간단한 예제를 통해 성능 검증을 해보려 한다.
</aside>
PoC 예제 1) : 작업 큐 처리 비교
- kafka를 이용한 비동기 메시지 처리를 구현하여 성능 개선을 확인하는 목적
매뉴얼
- 얻은 인사이트
- 직렬 처리 소요:
90665 ms
- Kafka 처리 소요:
1577 ms
- 약 57배의 속도 차이가 남!
- 시간 절약 98.3%
PoC 예제 2) : 벤치마크 테스트
- FCM 알림 워크 로드에 최적의 성능을 가지는 Kafka 설정 값을 찾는 목적
- 내가 생각하는 최적의 성능이란 무엇일까?
- 지연 최소화(실시간 성, end-to-end 지연)
- 처리량 극대화(대량 발송, throughput)
- 자원 효율(인프라, cpu, memory)
- 목표 타겟
- “End-to-End 지연 0.5초(500ms) 이하”
- “Throughput 10,000 msg/s 확보”
Kafka 설정 (예시)
- 설정 값을 찾는 방법
-
실제 FCM 알림에 사용되는 Payload(전송 데이터) 크기를 찾는다.
Payload의 크기를 왜 찾아야 할까?
-
Payload 크기에 맞게 설정 값을 튜닝해서 테스트를 실시한다.
-
결과 값을 가지고 분석 → 최적의 설정 값을 찾는다.
-
이를 실 서비스에 적용하고 테스트 해본다.
벤치마크 테스트 수행
Test 결과 Payload의 사이즈는 약 732bytes로 나왔다.