레디 스 센티넬 모드는 고 가용성 클러스터를 달성하기 위해

  센티넬 수행 된 내용에서 첫 모습은 다음과 같습니다 여러 서버 (예), 시스템은 다음과 같은 세 가지 작업을 수행 관리를위한 레디 스 레디 스 센티넬 시스템 :

  • 모니터링 (감시 ) : 센티넬은 주 서버와에서 장치가 올바르게 작동 할 경우 서버를 확인하는 것입니다.
  • 알림 (알림) 하십시오 레디 스 서버 문제를 모니터링 할 때, 센티넬은 API를 통해 관리자 나 다른 응용 프로그램에 알림을 보낼 수 있습니다.
  • 자동 페일 오버 (자동 장애 복구) : 주 서버가 제대로 작동하지 않는 경우, 센티넬 자동 장애 복구 작업이 시작됩니다, 그것은 새로운 주 서버에 하나 개의 서버에서 기본 서버 업그레이드를 실패하고 주 서버의 실패를하게됩니다 다른 하나는 새로운 주 서버로 서버에서 복사, 클라이언트가 주 서버에 장애가 발생에 연결을 시도 할 때 새 마스터 클러스터가 대신 오류가 발생한 서버의 사용 할 수 있도록 클러스터는 새로운 주 서버 측의 클라이언트 주소로 돌아갑니다.

   레디 스 센티넬은 분산 시스템, 당신은 오프라인 상태입니다, 이러한 프로세스는 마스터 서버에서 정보를 수신 소문 프로토콜 (가십 프로토콜)를 사용하는 프레임 워크에서 여러 프로세스 센티넬 (진행)을 실행할 수 있으며 (계약 프로토콜을 투표 계약을 사용 ) 자동 장애 조치를 수행할지 여부를 결정하고 선택할 수있는 새로운 마스터로 서버에서한다.

   클러스터가 실패하면 레디 스 센티넬 (센티넬)가 별도의 실행 파일 레디 스 - 센티넬이지만, 실제로 클러스터를 모니터링 할 수 레디 스 센티넬 레디 스에 의해 작동의 특별한 모드에서 단지 레디 스 서버입니다 후 자동으로 실패 마이그레이션.

  다음과 같이 레디 스 센티넬를 들어, 두 개의 스타트 업 모드가 있습니다 : 

  레디 스-감시 프로그램의 경우, 센티넬 시스템을 시작하려면 다음 명령을 사용할 수 있습니다 :

레디 스 - 센티넬 /path/to/sentinel.conf

  레디 스 서버 프로그램의 경우, 다음 명령을 사용하여 센티넬 모드에서 실행되는 레디 스 서버를 시작할 수 있습니다 :

--sentinel /path/to/sentinel.conf 레디 스 서버

본 실시 예는 세 아키텍처 레디 스 세 센티넬에서 구현

마디 IP 포트
redis1 127.0.0.1 7000 (마스터)
redis2 127.0.0.1 (7001) (슬레이브)
redis3 127.0.0.1 (7001) (슬레이브)
레디 스 - sentinel1 127.0.0.1 26379
레디 스 - sentinel2 127.0.0.1 26380
레디 스 - sentinel3 127.0.0.1 26381

 

 

 

 

 

  첫째, 클러스터 레디 스를 구성

  1.의 마스터 노드에서 구성을 열고
  마스터 노드 : 새로운 레디 스 - 7000.conf의
    구성 :

포트 7000 
데몬으로 예 
pidfile /var/run/redis-7000.pid 
로그 파일 "7000.log" 
DIR "/ 루트 / 레디 스 / 데이터"

    시작 : 레디 스 서버 레디 스를-7000.conf

  뉴 레디 스-7001.conf와 레디 스-7002.conf 파일 : 노드에서
  SLAVE1 구성 :

포트 7001 
데몬으로 예 
pidfile /var/run/redis-7001.pid 
로그 파일 "7001.log" 
DIR "/ 루트 / 레디 스 / 데이터" 
slaveof 127.0.0.1 7000

  slave2 구성 :

포트 7002 
데몬으로 예 
pidfile /var/run/redis-7002.pid 
로그 파일 "7002.log" 
DIR "/ 루트 / 레디 스 / 데이터" 
slaveof 127.0.0.1 7000

    시작 : 레디 스 서버 레디 스를-7001.conf

       레디 스 서버 레디 스 - 7002.conf

  레디 스 클러스터를 확인 정보를 복제 redis1 로그인 한 후 마스터로서의 역할을

 

, master_port에는을 127.0.0.1 : 누구의 주요 MASTER_HOST 노예 : redis2 정보 복제를 로그인 한 후, 그 역할의 역할을 발견 7000

 

   상황 redis3의 redis2와 상황은 동기화가 성공하면 확인하기 위해 노드 2 항과 3 항에서 다음 데이터 redis1 증가, 수, 노드 2와 3 만 읽을 수있는 권한과 클러스터를 확인하기 위해 다른 작업을 쓰지 동일 정확성.

  둘째, 메인 모니터의 구성은 (감시 특별한 레디 스입니다) 감시 림프절을 설정

    1. 구성 세 전초 림프절

새로운 세 가지 프로파일 : 레디 스 - 전초 26379.conf, 레디 스 - 전초 26380.conf, 레디 스 - 전초 26381.conf

포트 26,379 
데몬으로 예 
DIR "/ 루트 / 레디 스 / 데이터" 
로그 "26379.log" 
감시 모니터의 mymaster 127.0.0.1 7000 2 
센티넬 다운 후 밀리에게 mymaster 30000 
mymaster 센티넬 병렬 동기화 1 
센티넬 페일 오버 타임 아웃 mymaster 180000
포트 26,380 
데몬으로 예 
DIR "/ 루트 / 레디 스 / 데이터" 
로그 "26380.log" 
감시 모니터의 mymaster 127.0.0.1 7000 2 
센티넬 다운 후 밀리에게 mymaster 30000 
mymaster 센티넬 병렬 동기화 1 
센티넬 페일 오버 타임 아웃 mymaster 180000
포트 26,381 
데몬으로 예 
DIR "/ 루트 / 레디 스 / 데이터" 
로그 "26381.log" 
감시 모니터의 mymaster 127.0.0.1 7000 2 
센티넬 다운 후 밀리에게 mymaster 30000 
mymaster 센티넬 병렬 동기화 1 
센티넬 페일 오버 타임 아웃 mymaster 180000

각각 상기 실시 세 시작 센티널 : - 레디 스 전초 - 레디 스 전초 26379.conf

               레디 스 - 센티넬 레디 스 - 전초 26380.conf

               레디 스 - 센티넬 레디 스 - 전초 26381.conf

세 가드가 성공적으로 시작되었는지 확인 :

  세 개의 감시 시작 후 보초로 로그인 레디 스로 로그인 할 수 있지만, 보초 자신의 API를했다, 증가 된 데이터 감시 많은 명령이 인식되지 않습니다. 그런 다음 우리는 열한의 각 보초에 대한 정보를 확인으로, 당신은 아래 그림에서 정보와 노예와 주인의 감시의 양을 볼 수 있습니다 로그인합니다.

 

   그 다음 문제는, 우리가 감시 노드 레디 스 슬레이브 구성 및 기타 전초 림프절 센티넬 노예 때 시작하고 얼마나 다른 감시는 발견되지 않았습니다 있는가? 사실, 내부의 발행 - 구독 메시지를 통해 달성, 우리는 공식 설명에 보면 :

  센티넬은 자동으로 검색하고 서버에서

  센티넬은 다른 센티넬의 복수에 연결할 수 있습니다, 서로의 가용성 센티넬 서로, 교환 정보를 확인할 수 있습니다.

  센티넬 자동 게시 기능을 구독 할 수 센티넬 동일한 기본 서버에서 다른 모니터하고 발견 할 수 있기 때문에 각 센티넬 당신은 서로 센티넬의 주소를 설정 실행할 필요가 없습니다,이 기능은 채널을 통해  센티넬 : 헬로이를 구현하기 위해 정보를 전송 .

  마찬가지로, 당신은 센티넬가 마스터 서버를 쿼리하여 서버에서 모든 정보를 얻을 수 있기 때문에 수동으로 서버에서 기본 서버에서 모두 나열 할 필요가 없습니다.

  • 센티넬은 게시 및 구독 기능을 통해 한 번에 2 초마다 각각의 주파수는 모든 주요 서버에 의해 사용되는 것이며, 서버에서의 모니터링  센티넬 : 메시지 안녕하세요 채널, 센티넬 IP 주소, 포트 번호에 포함 된 정보를 전송하고, 실행 ID (runid).
  • 각 센티넬은 모든 주 서버에 가입하고는 모니터링 서버에서  센티넬 : 헬로 채널 (알 수없는 센티넬을 찾고) 모양 센티넬 전에 보이지 않았다. 센티넬은 새로운 센티넬을 발견했을 때, 그것은 새로운 목록에 추가됩니다 감시 목록 다른 모든 센티넬의 주 서버와 감시 알려진 센티넬이 포함되어 있습니다.
  • 센티넬 정보는 상기 현재 구성 (설정)의 전체를 포함하는 마스터 전송된다. 주 서버가 센티넬 구성이 다른 전송 센티넬보다 오래된 포함되어있는 경우, 다음 센티넬은 즉시 새로운 구성으로 업그레이드합니다.
  • 새로운 센티넬 위의 목록에서 기본 서버를 모니터에 추가하기 전에, 센티넬 목록이 이미 센티넬가 포함되어 있는지 여부를 확인하고 당신은 센티넬 (IP 주소와 포트 번호를 포함) 같은 실행 ID 또는 동일한 주소가 추가 할, 그리고 경우 다음, 센티넬 센티넬은 먼저 새로운 센티넬을 추가, 이미 동일한 ID 또는 동일한 주소를 실행 한 사람들의 목록을 제거합니다.

 우리가 센티넬 정보 및 다른 슬레이브 노드를 작성 완료 후에 자동으로 시작하는 경우는 다음과 같이, 본 실시 예에서 인, 그 프로파일에 감시 림프절, 즉 감시 프로파일 변경 레디 스 :

포트 26380 
데몬으로 예 
디렉토리 "/ 루트 / 레디 스 / 데이터" 
로그 파일 "26380.log" 
센티넬 대한 myid 60ee52fc339d6713cf01429295333abc52af4c6b 
감시 모니터링 mymaster 127.0.0.1 7000이 
감시 설정 - 시대의 mymaster 0 
감시 리더 - 시대의 mymaster 0 
에 의해 생성 # CONFIG REWRITE 
감시 known- 슬레이브 mymaster가 127.0.0.1 7001 
센티넬 공지 슬레이브 mymaster가 127.0.0.1 7002 
센티넬 알려진 센티넬 mymaster가 127.0.0.1 26,381 06f16eb142ee0895dedd769d2d5072c7d682cc50 
센티넬 알려진 센티넬 mymaster 127.0.0.1 26,379 b0f4c698b611b92fb406f3a04815b0536baed055 
센티넬 전류 에포크 0

  지금까지 우리의 레디 스 센티넬 모델은 완전한 구축 성공합니다 레디 스 7000 포트, 자동 장애 조치 모습 센티넬 전송을 죽이고, 몇 가지 검증을 실시합니다.

 

 

  마스터는 포트 번호 7001 레디 스 함수가 ​​일반적으로 사용 가능하게 자동 전송 우리 완전한 실패 레디 스 클러스터에 대한 파수 그래서.

추천

출처www.cnblogs.com/hopeofthevillage/p/11499532.html