
백엔드
FMS(Fleet Management System) 주행이벤트 파이프라인 개선기
두줄요약
주행 이벤트 파이프라인에서 데이터 순서 보장과 대량 IoT 트래픽 처리를 위해 구조를 두 차례 개선했습니다. Kafka, NoSQL, 멱등성 설계로 비동기 실시간 처리와 정합성을 높였습니다.
문제 상황
- 주행 이벤트의 선후행 관계를 위해 데이터 순서 보장이 필수였으나, 초기 파이프라인에서는 프로토콜 간·동일 프로토콜 내 순서가 흔들림
- 스케줄링 기반 배치 처리로 특정 시점 부하 집중, 불필요한 리소스 사용, 쿠버네티스 환경에서 차량별 중복 탐지 방지용 Lock으로 부하 분산 한계
- RDB와 동기 API 중심 구조가 대량 IoT 트래픽, 비동기 처리, MSA 장애 대응, 스케일 아웃 요구에 부적합
해결 방법
- 단말기 데이터를 DB에 먼저 적재하고 일정 주기 스케줄링으로 이벤트를 탐지해 데이터 순서 보장 기반 마련
- 이후 RDB에서 NoSQL로, 스케줄링 배치에서 Kafka 기반 이벤트 파이프라인으로 전환해 비동기 처리와 처리량 개선
- 차량별 Chunk 단위의 Check-In & Check-Out, Check-In Expire, 멱등성 설계로 순서 보장과 데드락 방지, TTL 인덱스로 시계열 데이터 관리
성능/운영 포인트
- 실시간 이벤트 기반 전환으로 특정 시간대 부하 집중 완화와 서버 역할 분리
- 이벤트 순서와 정합성 검증을 위해 실차 테스트 병행
- 알림 서버 등 다른 서비스로의 확장 가능성 및 데이터 스토리지 스케일 아웃 용이성 확보
