6 복제 마스터 복사 모드와 센티넬에서 레디 스 기사

개요

  • 공식 설명 : HTTPS : //redis.io/topics/replication
  • 역할 : 읽기 (슬레이브) 쓰기 (마스터) 분리, 재해 복구
  • 센티넬 무인 모드
  • 단점 : 마스터 - 슬레이브 복제가 의심의 여지 (슬레이브 기계 동기 시스템에 마스터) 지연을 가져올 것, 지연을 사용 센티넬 모드는 더 명백 할 것이다.

제조 테스트 구성 (a 개의 백업 호스트 컴퓨터)

구성 복수의 파일을 복사하는 것은 레디 스를 구분하기 위해 이름이 지정됩니다 {포트}의 .conf

  • 마스터 포트 6379
  • SLAVE1 포트 6380
  • Slave2 포트 6381
  • 다른 편리한 구성의 차이
    • 백그라운드 서비스를 사용하여 시작하는 방법 daemonize yes
    • pidfile 레디 스 {포트} .pid
    • logfile 레디 스 {포트} .LOG
    • dbfilename 덤프 {포트} .rdb

테스트 1 마스터 <SLAVE1, Slave2

  • 각각 시작하고 세 가지 서비스를 연결
    redis-server redis{port}.conf ps -ef|grep redis|grep -v grep redis-cli -p {port}
  • 클라이언트는 마스터 - 슬레이브 복제에 대한 정보를 볼 수 있습니다 info replication
    # Replication role:master connected_slaves:0 master_replid:d3d1de9a393d82c4dc1787800471fffba1323b3a master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
  • 마스터 데이터를 복사하기 시작
    • 석사

      set k1 v1
      set k2 v2
    • SLAVE1 및 Slave2

      get k1
      slaveof 127.0.0.1 6379
      get k1
      get k2
    • 우리는 슬레이브 마스터 데이터가 복사되어 볼 수 있습니다
    • 마스터 KV를 설정하기 위해 계속 데이터 동기화 검증 슬레이브
    • 보기 다시 마스터에서 정보를 복사 info replication정보가 일치 볼 수 있습니다
    • 슬레이브 오류에 기록됩니다
      (error) READONLY You can't write against a read only replica.
  • 마스터 종료, 노예는 이동하지 않습니다
    • 슬레이브보기 info replication
    • 슬레이브 데이터는 여전히 또한 마스터와의 관계를 볼 될 수 있습니다
    • 마스터가 다시 시작되면, 마스터 - 슬레이브 관계는 지금까지 복구
  • SLAVE1 종료는 마스터가 이동하지 않습니다
    • Slave2 마스터 - 슬레이브 관계는 변경되지 않습니다
    • SLAVE1 다시 시작 후, 마스터 - 슬레이브 관계는 사라지고, 재해야 할 slaveof 127.0.0.1 6379데이터를 동기화
    • 당신은 노예를 중지하려면 / "나중에 다시"다시 시작하면 슬레이브 서버 구성의 필요성을 깨진 replicaof 127.0.0.1 6379

시험 2 마스터 <SLAVE1는 <Slave2는 (SLAVE1 Slave2 마스터이다)

  • 그것은 다음의 슬레이브 마스터 슬레이브 수 있습니다, 그래서 당신은 쓰기 압력 마스터를 공유 할 수 있습니다
  • 마스터를 변경 Slave2 :slaveof 127.0.0.1 6380
  • 주요 SLAVE1 정보 변경에서보기 :info replication
  • 현재 전반적으로, 데이터 무결성, 같은 단지 지금 Slave2 SLAVE1은 "통과 토치"모드로, 데이터를 동기화하는 "하나의 주 두 종"모델이되기 전에, SLAVE1 어떻게 마스터의 압력을 공유하는 방법을? 계속 ..
  • 마스터 종료, 아날로그 마스터 기계가 끊었, SLAVE1이 수있는이 시간 slaveof no one당신이 그들에게 쓰기 및 계속할 수 있도록, 새로운 마스터 SLAVE1이, (역할 슬레이브 마스터가되었다) "주인이 될"그래서는 마스터 슬레이브 관계 Slave2하기
  • 이 시점에서, 원래의 마스터 다시 시작 복구 서비스는 별도의 마스터 서비스, 원래 SLAVE1 될 것이다 Slave2 아웃입니다.
  • 그런 다음, 다시 끊지 SLAVE1는 사라 데이터의 기록 중 "주인이되기 위해"SLAVE1에 SLAVE1 및 Slave2을 발견하고 데이터의 주인이 될 것이다, 가장 원시적 인 "하나의 주 두 종"관계를 복원 마스터합니다. 그것은 변화 슬레이브 마스터, 슬레이브 데이터가 먼저 삭제됩니다 후 본 다음 새 마스터에 대한 데이터를 동기화 할 수 있습니다

센티넬 (감시) 모드

설명

  • 주인이, 당신은 또한 인위적으로 슬레이브 마스터로 변환해야 할 경우 이전 테스트가 전화를 끊습니다, 사실, 기계는 인간이 만든 과정에 의존하지 수, 등 이른 아침으로, 언제든지 발생할 수 끊습니다.
  • 센트리 모드는 소위 "라이트 아웃"효과를 달성하기 위해, 위의 단점을 보완한다.
  • 1 효과 : 마스터를 모니터링하는 것은 실패 할 경우 사용 센티넬 모드, 다른 하나는 마스터 모니터링의 과정을 시작합니다, 슬레이브가 자동으로 투표 메커니즘에 따라 새로운 마스터 (투표의 세부 정보를 볼 수 있습니다 감시 로그를 참조)로 업그레이드.
  • 이펙트 2 : 원본 마스터 완전히 주종 관계를 변경하는 자동 원본 마스터 SLAVE1 연결된 다운 그레이드 감시 감시 후 복원 경우 센티넬 모드 SLAVE1는 마스터 업그레이드.

구성 및 테스트

  • 복구 "두 가지 노예"모드, 마스터 (79), 두 개의 슬레이브 (80, 81)
  • 새로운 감시 프로파일 vi sentinel.conf, 내용 :
    sentinel monitor master6379 127.0.0.1 6379 1
    설명 :
    • sentinel monitor ... 마스터 모니터는 컴퓨터의 뒷면에있는 보초를 나타냅니다
    • master6379 이름 뒤에 마스터를 들으려면
    • 127.0.0.1 6379 마스터 차단 대상 IP 및 포트 서비스
    • 마지막 숫자는 감시를 N (감시 클러스터)이있을 때 주인이 정말 끊었 생각하고 작업을 장애 조치 때, 전화를 끊었 생각, 즉, 감시 m = 1 투표 수를 나타냅니다. 이것은이 N 직접 1로 설정, 독립 실행 형 테스트입니다.
    • 새로운 라인은 여러 호스트 마스터를 듣고, 할 수있다
  • 센티넬를 시작
    redis-sentinel sentinel.conf 或者 redis-server sentinel.conf --sentinel
    로그를 볼 수있는 시작 후 :
    # Sentinel ID is 89568e210930ec9fe58e4cf856a5ef8e14501955 # +monitor master master6379 127.0.0.1 6379 quorum 1 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ master6379 127.0.0.1 6379 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ master6379 127.0.0.1 6379
  • 마스터 종료, 관찰 센티넬 로그를
    # +sdown master master6379 127.0.0.1 6379 # +odown master master6379 127.0.0.1 6379 #quorum 1/1 # +new-epoch 1 # +try-failover master master6379 127.0.0.1 6379 # +vote-for-leader 89568e210930ec9fe58e4cf856a5ef8e14501955 1 # +elected-leader master master6379 127.0.0.1 6379 # +failover-state-select-slave master master6379 127.0.0.1 6379 # +selected-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ master6379 127.0.0.1 6379 * +failover-state-send-slaveof-noone slave 127.0.0.1:6380 127.0.0.1 6380 @ master6379 127.0.0.1 6379 * +failover-state-wait-promotion slave 127.0.0.1:6380 127.0.0.1 6380 @ master6379 127.0.0.1 6379 # +promoted-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ master6379 127.0.0.1 6379 # +failover-state-reconf-slaves master master6379 127.0.0.1 6379 * +slave-reconf-sent slave 127.0.0.1:6381 127.0.0.1 6381 @ master6379 127.0.0.1 6379 * +slave-reconf-inprog slave 127.0.0.1:6381 127.0.0.1 6381 @ master6379 127.0.0.1 6379 * +slave-reconf-done slave 127.0.0.1:6381 127.0.0.1 6381 @ master6379 127.0.0.1 6379 # +failover-end master master6379 127.0.0.1 6379 # +switch-master master6379 127.0.0.1 6379 127.0.0.1 6380 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ master6379 127.0.0.1 6380 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ master6379 127.0.0.1 6380 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ master6379 127.0.0.1 6380
    볼 수 있습니다, 79Master에 대한 감시 감시하고 확인을 투표를하고 80 새로운 마스터 재선, 전화를 끊었다.
  • 주요 정보에서 원래 슬레이브보기는 80Slave의 역할은 마스터가되었다 볼 수있다
  • 다시 79Master는 기록보기 및 센티넬 마스터 - 슬레이브 관계는
    * +convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ master6379 127.0.0.1 6380
    도 79에 변환 - 슬레이브 동작 로그로부터 센을 알 수있다

추천

출처www.cnblogs.com/noodlerkun/p/11549842.html