## 기능
- Monitoring
- 마스터 및 레플리카 인스턴스가 동작하는지 지속적으로 확인.
- Notification
- API를 통해 인스턴스에 문제가 있음을 알릴 수 있다.
- Automatic Failover
- 마스커가 동작하지 않으면 레플리카가 마스터로 승격되고, 다른 레플리카들이 새로운 마스터를 사용하도록 재구성되고, 레디스를 사용하는 클라이언트에 새 주소를 알려준다.
- Configuration provider
- 마스터의 주소를 클라이언트에 알려준다.
## 작동

- 센티넬 과반 수 이상이 마스터의 장애를 감지하면 레플리카 중 하나를 마스터로 승격시킨다.
- 다수결에 의해 결정되기 때문에 센티넬은 항상 홀수여야하고, 안전하게 최소 3개 이상이 필요하다.
- 내부적으로 pub/sub으로 통신한다.
- 센티넬에 직접 쿼리를 날려서 통신할 수도 있고, pub/sub으로 구독해서 센티넬이 주는 이벤트를 받을 수도 있다.
### Quorum
- 쿼럼은 마스터를 장애 상태로 만들기 위해 동의해야하는 센티넬의 수이다.
- 단순히 장애를 찾는 용도이고 실제로 failover를 하려면 센티넬의 과반수가 투표해야한다.
#redis #db