• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • MongoDB Replica Set
        2023년 05월 20일
        • starryeye
        • 작성자
        • 2023.05.20.:08
        반응형

        MongoDB 의 3가지 형태 중 하나인

        Replica set 에 대해 알아보겠다.

         

        특징

        - High Availability (고 가용성)

        - 가장 많이 사용됨

        - 무중단 서비스를 가능하도록 만들어주는 최소 단위

         

         

        Replica set 의 맴버

        현재 위 그림에서 MongoDB 는 3개의 맴버를 가지고 있다. (Primary, Secondary, Secondary)

        각 맴버는 각각 다른 서버에 존재한다. (모두 하나의 서버에 존재 할 수 도 있다.)

         

        맴버의 상태로는 3가지가 있다.

        Primary

        - Read/Write 요청 모두 처리 가능하다.

        - Write 를 처리 할 수 있는 유일한 맴버이다.

        - Replica set 에서 하나만 존재

         

        Secondary

        - Read에 대한 요청만 처리할 수 있다.

        - 복제를 통해 Primary와 동일한 데이터 셋을 유지한다.

        - Replica set에 여러개가 존재 할 수 있다.

         

        Arbiter (그림에는 없음)

        - Primary 를 선출할 때 투표를 행사하는 용도의 맴버

        - Secondary에서 데이터를 저장하는 기능을 뺀 것이라 생각하자.

         

        그림 설명을 이어 나가자면..

        Write 요청은 Primary 맴버로 하는 것을 볼 수 있고

        Read 요청은 Secondary 맴버로 하는 것을 볼 수 있다.

        하지만, Read 요청에 대한 기본 설정은 Primary 로 하는 것이고

        Read Preference 설정을 해주어야만 Secondary 가 수행한다.

        기본 설정 대로라면.. Secondary는 fail-over 용도로만 사용된다.

         

         

        Replica Set 의 Automatic Fail-Over

        그림과 같이 Replica set 은 각 맴버들 간 Heartbeat 라는 신호를 서로에게 날리며

        health check 를 수행한다.

         

        그림과 같이 health check 를 하다가 갑자기 Primary 가 장애가 일어난다면...

        Write 요청을 처리하는 맴버가 없어진 것이기 때문에

        Secondary 하나를 Primary 로 선출한다. (Fail-Over)

         

         

        Replica Set 의 Oplog

        Replica set 은 oplog 라는 것을 통해서

        Replica Set 의 모든 맴버가 동일한 데이터 셋을 가지도록 유지 시켜준다.

         

        oplog 동작 과정은 다음과 같다.

        1. Primary write 연산 수행

        2. Primary local 의 oplog 에 변경사항 기록

        3. Secondary는 Primary의 oplog 변경사항을 읽어서 자신 데이터 셋에 반영시킴(비동기)

         

        <참고>

        oplog 는 Primary 에만 존재하는 것이 아니라 Secondary에도 존재한다.

        Secondary 끼리도 데이터셋 정합을 맞춘다는 것이다.

        반응형

        'DataBase > NoSQL' 카테고리의 다른 글

        Redis 시작해보기  (0) 2023.06.01
        MongoDB Sharded Cluster  (0) 2023.06.01
        MongoDB 3가지 형태  (0) 2023.05.20
        MongoDB 구조  (1) 2023.05.18
        MongoDB 시작해보기  (0) 2023.05.18
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바