목록 보기
Raft 알고리즘을 이용해 고가용 프로그램을 만들어보자!!
백엔드

Raft 알고리즘을 이용해 고가용 프로그램을 만들어보자!!

데보션
데보션
2025년 5월 19일

두줄요약

Raft와 sofa-jraft로 3노드 고가용 우선순위 큐를 구현한 사례를 소개했습니다. 리더 선출과 로그 복제로 장애 상황에서도 일관성을 유지하는 흐름을 설명했습니다.

문제 상황

  • 분산 시스템에서 노드 장애와 네트워크 파티션 속에서도 데이터 일관성과 고가용성 유지 필요
  • 우선순위 큐를 여러 노드에서 동일하게 유지하는 합의 구조 요구

원인 분석

  • 클라이언트 요청과 상태 변경이 여러 노드에 흩어지면 일관성 보장 어려움
  • 과반수 합의 없이 상태를 바꾸면 장애 시 데이터 불일치 위험

해결 방법

  • Raft 알고리즘으로 리더 선출, 로그 복제, 안전성 확보
  • sofa-jraft를 활용해 3노드 Raft 클러스터와 PriorityQueueStateMachine 구성
  • 리더로 enqueue, dequeue, peek 요청을 보내고 커밋 후 모든 노드에 동일 적용

성능/운영 포인트

  • 리더 장애 시 200~300ms 수준의 짧은 서비스 지연 후 재선출
  • 팔로워 장애와 네트워크 파티션에서도 과반수 클러스터가 지속 동작
  • 모니터링, 스냅샷 백업, 로그 압축, 클러스터 확장 고려 필요

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...