올리브영, 신규 재고 시스템 구축 여정 공개!
by DD
2년 전
조회수 4
Oracle DB 트래픽 분산을 위해 신규 재고 시스템 구축 시작
Redis 기반 분산 락과 Kafka Message Streaming을 활용하여 동시성 제어 및 데이터 적재 구현
Reactive Programming 적용으로 API 평균 Latency 개선 및 시스템 안정성 확보
분산 락: Redisson과 동시성 제어
올리브영은 Redisson을 활용하여 분산 락을 구현, 데이터 일관성을 확보했다. 구체적으로 RLock 인터페이스를 통해 분산 환경에서 자원 접근을 조정했다. 따라서 tryLock 메서드를 사용하여 락 획득 실패 시 추가 작업을 수행하도록 설계했다.
Kafka Message Streaming: 레거시 시스템 연동
신규 재고 시스템은 Kafka Message Streaming을 통해 POS에서 발생하는 재고 이벤트를 처리한다. 비동기 호출 기반의 Batch 전송 방식을 적용하여 Producer의 부하를 줄였다. 따라서 buffer.memory, batch.size, linger.ms 설정을 통해 성능을 최적화했다.
Reactive Programming: API 성능 개선
올리브영은 Reactive Programming을 통해 API 성능을 개선하고 데이터 처리 효율을 높였다. Redisson Reactive Client를 활용하여 비동기 데이터 스트림을 처리했다. 결과적으로 API 평균 Latency 감소 및 시스템 안정성 향상을 달성했다.