이 글은 Redis에 대한 관련 지식을 제공합니다. 센티넬의 개념, 센티널의 역할, 센티널 활성화, 센티널의 원리 등 센티넬 모드와 관련된 문제를 주로 소개합니다. 모든 사람.
추천 학습: Redis Tutorial
마스터-다중 슬레이브 구조에서는 마스터가 다운되면 여러 슬레이브 중에서 선택해야 합니다. 새로운 마스터를 생성하려면, 그러한 기능을 완성하려면 Redis의 센티넬 메커니즘을 사용해야 합니다
Sentinel(센티넬)은 마스터-슬레이브 구조에서 각 서버를 모니터링하는 데 사용되는 분산 시스템 모니터링 , 오류가 발생하면 투표 메커니즘 을 통해 새 마스터를 선택하고 아래 그림과 같이 모든 슬레이브를 새 마스터에 연결합니다.
알림(알림): 문제가 있는 경우 모니터링되는 서버, 다른 센티널 및 Redis 서버에 알림 보내기
failover: 다운된 마스터를 슬레이브에서 연결 해제하고, 슬레이브를 마스터로 선택하고, 다른 슬레이브를 새 마스터에 연결하고, 클라이언트에 새 서버를 알립니다. 주소
참고: Sentinel은 모니터링 서비스만 제공하고 데이터 관리 서비스는 제공하지 않는 Redis 서버이기도 합니다. 일반적으로 센티널 수는 홀수로 구성됩니다(투표에 편리함)
Sentinel sentinel.conf
구성 파일을 수정합니다. 구성 파일은 아래 그림과 같이 Redis 디렉터리에 있습니다.
일부 구성의 의미는 아래 그림과 같습니다. :
Sentinel 시작
redis-sentinel filename #filename指的是配置文件名 #每个哨兵都要配置自己的配置文件
Sentinel 구성 및 시작 이후 메인 서버가 다운된 후 투표, 마스터-슬레이브 전환 등의 프로세스를 자동으로수행합니다
Sentinel은 마스터-슬레이브 전환 프로세스 동안 세 단계를 거칩니다.
은 이러한 노드의 상태 정보를 동기화하는 데 사용됩니다. 마스터, 슬레이브, 센트리, 즉 전체 시스템의 모든 서버에 대한 정보를 포함합니다.
주로 완성된 기능:
각 센티널의 상태 가져오기(온라인 여부에 관계없이): 새로 추가된 센티널은 시스템의 기존 센티널과 상호 작용해야 합니다.
상태를 가져옵니다. of the master (info 명령을 통해)
얻은 내용은 다음과 같습니다
1. master属性 runid role:master 2. 各个slave在master中保存的基本信息
모든 슬레이브의 상태를 가져옵니다 (info 명령은 마스터에 있는 슬레이브 정보를 기반으로 모든 슬레이브에 전송됩니다)
얻은 내용은 다음과 같습니다
slave属性 runid role:slave master_host、master_port offset
구체적인 내부 동작은 다음과 같습니다.
알림 단계에서 센티널은 지속적으로 마스터와 슬레이브의 정보를 얻어야 하며, 그 다음에는 서로 정보를 교환하고 전송해야 합니다. 공유된 다양한 센티널 간에 획득된 정보를 전송합니다.
구체적인 프로세스는 다음과 같습니다.
센티넬은 설정된 cmd 연결을 통해 마스터와 슬레이브에게 hello
명령을 보내고 그들의 정보를 얻은 후 관계 네트워크에서 공유합니다. hello
指令,得到他们的信息,然后在关系网中共享:
断开宕机的master与slave的连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服务器地址。
具体的流程如下所述:
哨兵1始终得不到master的回应,主观判断master宕机,标记 sdown
(仅有一个哨兵认为master宕机)
哨兵1在关系网中传递消息,向其他哨兵发送图中左上角的消息
其他哨兵得到消息之后,全部向master发送消息,确定master是否宕机,他们也会将自己得到的结果发送给关系网中的其他哨兵,确定master宕机后,将标记改为 odown
sdown
으로 표시했습니다. 마스터가 다운됨) odown
으로 변경합니다(모든 센티널 이후). 감지하면 센티넬의 절반 이상이 마스터가 다운되었다고 생각합니다) 먼저 제외하고
를 선택합니다.slaveof no one
指令
向其他slave发送 slaveof 新masterIP端口
응답이 느린 OUT
우선순위가 높은 OUT이 선택됩니다
slaveof no one
명령 보내기slaveof new masterIP port
명령위 내용은 Redis 감시 모드를 함께 분석해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!