세븐 코어 메커니즘 레디 스의 원리를 기본

한, S_DOWN 일본 O_DOWN

  S_DOWN 및 O_DOWN 두 종류 쓰러진 상태

(1), S_DOWN 다운 타임이 너무로 <br> SDOWN 아래에 도달 주관적 조건이 간단한, 센트리 핑 마스터의 경우,보다-마스터 -이다, 그들은 마스터가 다운 느낌 경우가 감시하고, 주관적이다 후 다운 후 밀리 초 단위로 지정 주관적인보기 마스터로 <br> 아래로 밀리의 수,

# 语法:sentinel down-after-milliseconds <master-name> <milliseconds>
# Number of milliseconds the master (or any attached replica or sentinel) should
# be unreachable (as in, not acceptable reply to PING, continuously, for the
# specified period) in order to consider it in S_DOWN state (Subjectively Down).
# 意思是任何从节点或者哨兵在指定的时间内,不能ping通主机就被认为成S_DOWN

센티넬 정원 번호가 마스터 다운 느끼는 경우 (2), 대물 O_DOWN 중단이 때문에 다운 타임의 목적은

 참고 : 지정된 시간 내에 감시가 쿼럼 다른 경비 지정된 수는 마스터, 다음은 O_DOWN로 간주됩니다 S_DOWN하다고 생각받은 경우 O_DOWN 변환 조건 S_DOWN은 매우 간단합니다
# 语法:sentinel monitor <master-name> <ip> <redis-port> <quorum>
# Tells Sentinel to monitor this master, and to consider it in O_DOWN
# (Objectively Down) state only if at least <quorum> sentinels agree.
# 意思是:告诉Sentinel监视这个master,如果至少quorum 数量的哨兵同意的话就变成了
# 客观宕机

둘째, 자동 발견 메커니즘 센트리 클러스터

1, 센티넬, 레디 스 술집 / 서브 시스템에 의해 달성 서로를 발견, 각 센티넬이 갈 것입니다 센티넬 :. 헬로이 채널을 메시지 보내기, 이번에는 소식에 다른 모든 경비를 소비하고 인식 할 수있다 다른 파수꾼이 있습니다.
2, 매 2 초, 자신의 가드에 각각 해당하는 마스터 + 노예 모니터링 할 센티넬 , 호스트, IP를 말한다 또한 마스터 구성을 모니터링 runid 메시지를 보낼 수있는 안녕하세요 채널 : 각 감시 감시는 자신의 마스터 + 노예 각 해당 모니터로 이동합니다 센티넬 , 헬로 채널을 한 후 다른 감시의 존재를이 마스터 + 노예 듣고에서 같은 인식로 이동합니다. 
(3)는 각각 감시 감시가 서로 동기화 센티넬 감시 구성의 마스터의 다른 구성과 교환한다.

세 개의 슬레이브 구성이 자동으로 수정됩니다

  당신이 노예 센티넬 보장합니다 마스터에 대한 잠재적 인 후보가되고 싶은 경우 자동적으로 슬레이브로, 일부 슬레이브 구성을 수정하기위한 센티넬은 책임이 그 데이터의 기존 마스터 사본 잘못된 마스터에 연결된 슬레이브, 장애 조치 등, 센티넬 후 경우 그것은 그들이 올바른 마스터에 연결되어 있는지 확인합니다

넷째, 슬레이브는 마스터 선택 알고리즘이된다

: 마스터가 O_DOWN 간주하고 다수 센트리 스탠바이 스위치가 허용된다면 제의 정보 슬레이브 일부 고려 후 전환 동작을 수행하는 센트리 이때 슬레이브를 선출하는  
마스터로 (1) 긴 분리
(2) 슬레이브의 우선 순위
(3)가 오프셋 복사본
. (4) 운전 ID

마스터와 슬레이브가 연결 이상이 해제하면 후 - 밀리 세컨드 다운 10 배, 플러스 마스터의 길이는 슬레이브가 마스터 선거에 적합 고려하지 않은, 아래로 간다

(down-after-milliseconds * 10) + milliseconds_since_master_is_in_SDOWN_state

다음은 정렬 된 노예가 될 것입니다

(1) 우선 순위 종으로 분류의 복제 우선 순위가 낮은, 높은 우선 순위는 다음과 같은 영어의 설명입니다 :

# The replica priority is an integer number published by Redis in the INFO output.
# It is used by Redis Sentinel in order to select a replica to promote into a
# master if the master is no longer working correctly.
#
# A replica with a low priority number is considered better for promotion, so
# for instance if there are three replicas with priority 10, 100, 25 Sentinel will
# pick the one with priority 10, that is the lowest.
#
# However a special priority of 0 marks the replica as not able to perform the
# role of master, so a replica with priority of 0 will never be selected by
# Redis Sentinel for promotion.
#
# By default the priority is 100.
replica-priority 100

(2) 슬레이브의 우선 순위가 더 상쇄 후에, 더 많은 데이터를 복사하는 슬레이브수록 우선 순위가 동일한 오프셋 봐 복제, 경우
(3) 상기 두 가지 조건이 동일한 경우에, 비교적 작은 런 ID를 선택 노예가

다섯, 정원 회 및 다수

하나는 감시가 전환을 할 때마다, 제일 정원 회는 센티넬의 수는 O_DOWN는, 다음 감시 스위치를 할 선출, 스카우트 공식 스위치 수행하기 위해 대부분의 센티넬의 승인을했다 생각 필요한 
정족수는 <대부분의 경우, (2) 예 5 센티넬은 대부분이다. 3, 정수는 다음 세 센티넬 인증 핸드 오버가 수행 될 수 있고, 2로 설정되지만 정수> = 대부분의 경우, 수 센티넬이인가되는 정수이어야 5- 센티넬 같이 정수가 5, 이 스위칭을 수행 할 수있는 다섯 감시 권한을 부여하기로 동의해야합니다

六, 구성 시대

  레디 스 마스터 + 슬레이브 모니터, 모니터의 해당 구성을 감시

도 1은 핸드 오버를 수행 센티넬은 다수 버전 버전 번호가 고유해야 전환 매회 새로운 마스터 (salve-> 마스터) 구성 에포크로 전환 얻을 것이다.
2. 처음 선출 된 센티넬 스위치가 실패하면 다른 감시가 장애 조치 타임 아웃 기간 동안 대기 한 후 새 버전 번호로, 새로운 구성 시대를 검색합니다이 때 스위치를 인수로 진행합니다.

7, configuraiton 확산

1, 핸드 오버가 완료된 후 센티넬가 자신의 로컬 마스터 구성에 최신을 업데이트 한 다음 다른 센티넬에 대한 동기가 술집 / 서브 메시징 메커니즘에 의해 전에 말한다  
모든 종류의 메시지이기 때문에 2, 버전 번호는 매우 중요하다 센트리 새로운 스위치를 완료하도록, 출판 및 모니터링하기 위해, 채널을 통과 한 후, 새로운 마스터 구성은 새로운 버전 번호 뒤에
버전 번호의 크기에 따라 구성되어 주인을 업데이트 3 다른 경비원

추천

출처blog.51cto.com/14230003/2451073