Vitess로 결제 시스템 DB를 교체한 LINE의 기술 노하우 공개!
by DD
10개월 전
조회수 5
LINE Billing Platform은 Vitess로 DB를 마이그레이션하여 일 평균 30억 건의 결제 트랜잭션을 처리함
gRPC 대신 MySQL 프로토콜을 선택, VTOrc를 활용한 자동 장애 감지 및 복구 시스템 구축
Vitess의 MySQL 호환성과 Two-Phase Commit 등 다양한 기능을 활용하여 시스템 안정성 확보
gRPC vs MySQL 프로토콜 선택 배경
Vitess에서 gRPC 프로토콜 사용 시 CPU 오버헤드가 발생하여 MySQL 프로토콜을 선택했다. 구체적으로, Java gRPC 클라이언트 사용 중 http2: frame too large 에러와 쿼리 결과 변환의 번거로움이 있었다. 따라서 MySQL 프로토콜을 활용하여 시스템 안정성을 확보했다.
Vitess 운영을 위한 모니터링 전략
VTOrc를 통해 장애 감지 및 자동 복구 시스템을 구축했다. Prometheus를 활용하여 VTOrc 지표를 수집하고, VTGate 및 VTTablet 지표를 모니터링한다. 로그 분석을 위해 Vector를 사용하여 ERROR/FATAL 로그 발생 시 알람을 받도록 설정하여 장애 대응 능력을 향상시켰다.
Vitess 운영 시 DDL 수행 프로세스
Vitess의 DDL 수행은 비관리 방식과 관리 방식으로 나뉜다. 비관리 방식은 DBA가 직접 MySQL DDL을 수행하고, ReloadSchema 명령어로 Vitess에 반영한다. 관리 방식은 vitess 또는 mysql 전략을 사용하며, 온라인 DDL 지원 여부에 따라 선택한다. 따라서 DBA 역할 분담을 통해 시스템 안정성을 확보했다.
댓글 0
첫 번째 댓글을 남겨보세요!