Redis sentinel
Opened this issue · 0 comments
센티널은 다음과 같은 기능을 합니다.
모니터링 Monitoring : 센티널은 레디스 마스터, 복제들을 제대로 동작하는지 지속적으로 감시합니다.
자동 장애조치 Automatic Failover : 센티널은 레디스 마스터가 예기치 않게 다운되었을 때 복제를 새로운 마스터로 승격시켜 줍니다. 그리고 복제가 여러 대 있을 경우 이 복제들이 새로운 마스터로 부터 데이터를 받을 수 있도록 재 구성하고, 다운된 마스터가 재 시작했을 때 복제로 전환되어 새로운 마스터를 바라볼 수 있도록 합니다.
알림 Notification : 센티널은 감시하고 있는 레디스 인스턴스들이 failover 되었을 때 Pub/Sub으로 Application(client)에게 알리거나 shell script로 관리자에게 이메일이나 SMS로 알릴 수 있습니다.
-
https://github1s.com/redis/redis/blob/7.0/src/commands.c#L3956-L3957
-
https://github1s.com/redis/redis/blob/7.0/src/commands/sentinel-monitor.json#L9
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L3754-L3755
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L3964-L3965
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L1317-L1318
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L181-L182
-
https://github1s.com/redis/redis/blob/7.0/src/server.h#L3193-L3205
-
https://github1s.com/redis/redis/blob/7.0/src/server.c#L6943-L6947
-
https://github1s.com/redis/redis/blob/7.0/src/server.c#L1415-L1417
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L5356-L5357
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L5301-L5302
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L5282-L5283
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4480-L4481
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L5291-L5292
-
센티넬들이 각자 master down after period 로 subjectively down 판단
-
센티넬 리더가 SDOWN이면 전체 센티넬의 is-master-down-by-addr 호출, 마스터 다운 판단수와 쿼럼 수 비교
-
failover 시작
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4577-L4578
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4609-L4610
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4553-L4554
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L5227-L5228
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4986-L4987
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4906-L4909
-
https://github1s.com/redis/redis/blob/7.0/src/sentinel.c#L4567-L4568