lettuce_sentinel_failover
Lettuce Sentinel Failover and Load Balancing
레디스 개발자 교육 신청 |
레디스 정기점검/기술지원 Redis Technical Support |
레디스 엔터프라이즈 서버 Redis Enterprise Server |
---|
Sentinel Failover and Load Balancing
Sentinel에 연결해서 Redis에 접속하는 방법을 설명한다.
조회 명령을 복제본에서 실행해서 부하 분산(load balancing)하는 방법을 설명한다.
Lettuce-6.1.7과 Redis-7.0.3에서 실행했다.
- Sentinel에 연결해서 Redis에 접속하는 방법을 설명한다.
- 조회 명령을 복제본에서 실행해서 부하 분산(load balancing)하는 방법을 설명한다.
- 입력, 조회 중 서버가 다운되었을 경우 장애 조치(failover) 테스트
Sentinel에 연결해서 Redis에 접속하는 방법
이클립스(eclipse 2022-03) 설정
Main.java
Util.java
Config.java
부하 분산(load balancing)하는 방법
조회 명령을 복제본에서 실행해서 부하 분산(load balancing)하는 방법
조회 명령을 복제본에서 실행해서 부하 분산(load balancing)하는 방법을 설명한다.
다음은 Lettuce에서 제공하는 조회 명령을 분산 실행하는 방법이다.
ReadFrom에서 선택할 수 있다.
- ANY: 마스터, 복제본 가리지 않고 골고루 조회 명령을 실행한다.
code: new ReadFromImpl.ReadFromAnyNode(); // @since 5.2 - ANY_REPLICA: 복제본에서 조회 명령을 실행한다.
복제본이 없을 경우 명령을 실행할 수 없다.
code: new ReadFromImpl.ReadFromAnyReplica(); // @since 6.0.1 - MASTER = UPSTREAM: 마스터에서만 조회 명령을 실행한다.
code: new ReadFromImpl.ReadFromUpstream(); // @since 6.0 - MASTER_PREFERRED = UPSTREAM_PREFERRED: 기본적으로 마스터에서 실행하고 마스터가 사용할 수 없을 경우 복제본에서 실행한다.
code: new ReadFromImpl.ReadFromUpstreamPreferred(); // @since 6.0 - REPLICA = SLAVE: 복제본에서만 조회 명령을 실행한다.
복제본이 없을 경우 명령을 실행할 수 없다.
code: new ReadFromImpl.ReadFromReplica(); // @since 5.2 - REPLICA_PREFERRED = SLAVE_PREFERRED: 기본적으로 복제본에서 실행하고 복제본을 사용할 수 없을 경우 마스터에서 실행한다.
code: new ReadFromImpl.ReadFromReplicaPreferred(); // @since 5.2 - LOWEST_LATENCY = NEAREST: 대기 시간이 가장 짧은 노드에서 읽도록 설정한다.
new ReadFromImpl.ReadFromLowestCommandLatency(); // @since 6.1.7
ANY
마스터, 복제본 가리지 않고 골고루 조회 명령을 실행한다.
부한 분산이 잘되고(마스터에서 조회 명령이 실행되는 것이 단점이지만),
복제본이 모두 다운되었을 때도 조회 명령이 마스터에서 실행된다. -> 추천 설정
ANY_REPLICA
복제본에서만 실행된다, 복제본에 골고루 분배되지만 복제본이 모두 다운되었을 경우는 명령이 실패한다.
MASTER = UPSTREAM
마스터에서만 조회 명령을 실행한다.
MASTER_PREFERRED = UPSTREAM_PREFERRED
기본적으로 마스터에서 실행하고 마스터가 사용할 수 없을 경우 복제본에서 실행한다.
REPLICA = SLAVE
복제본 중 한 곳에 집중된다. 테스트에서 두번째 복제본에서만 다 실행됐다.
REPLICA_PREFERRED = SLAVE_PREFERRED
복제본이 모두 다운되었을 경우 마스터에서 조회한다.
복제본 중 한 곳에 집중된다. 테스트에서 첫번째 복제본에서만 다 실행됐다.
LOWEST_LATENCY = NEAREST
대기 시간이 가장 짧은 노드에서 읽도록 설정한다.
복제본 중 한 곳에 집중되는 경향이 있다.
입력, 조회 중 서버가 다운되었을 경우 장애 조치(failover) 테스트
입력, 조회 중 서버가 다운되었을 경우 장애 조치(failover) 테스트
입력 명령(SET) 반복 실행 중 마스터 다운 테스트
kill -9 pid로 7000번 마스터 서버를 다운시킨다.
Reconnecting 두 번 반복하고 약 10초 후 새 서버에 명령이 실행된다.
조회(ANY_REPLICA) 중 복제본 1,2 차례로 다운
조회(ANY) 7000번 마스터만 살아있는 상태에서 조회 시작
조회 시작 후 7001번, 7002번 차례로 시작
조회(ANY) 7000, 7001, 7002 모두 살아있음.
조회 시작 후 7001번, 7002번 차례로 다운
<< Sentinel | Sentinel Failover | Cluster >> |
---|