Sentinel 모니터링으로 고 가용성 Redis 데이터베이스를 생성하는 방법

게시자 Zevenet | 10 년 2019 월 XNUMX 일

WeGO 소개

Redis 메시지 브로커, 캐시 및 키-값 데이터베이스로 사용할 수있는 오픈 소스 인 메모리 데이터 구조 저장소입니다. 해시,리스트, 세트, ​​정렬 된 세트, 비트 맵, 지리 공간 인덱스, 하이퍼 로그 등의 여러 데이터 구조를 지원합니다.

Redis를 독특하게 만드는 것은 상점과 캐시 모두로 간주 될 수 있다는 것입니다. 기본 컴퓨터 메모리에서 데이터를 수정 및 / 또는 읽는 방식으로 설계되었습니다.

다른 기능 중 Redis는 다음을 통해 고 가용성을 제공합니다. 레디 스 센티넬를 통한 자동 파티셔닝 레디 스 클러스터. 또한 Redis에는 슬레이브 인스턴스가 마스터 인스턴스의 정확한 사본이되도록하는 복제 메커니즘이 있습니다. 링크가 끊어 질 때마다 슬레이브가 자동으로 마스터에 다시 연결되며 그 목표는 정확한 복사본이되는 것입니다.

Redis Sentinel은 Redis에 대한 고 가용성을 제공하므로 많은 경우 사람의 개입 없이도 자동으로 장애를 처리 할 수 ​​있지만 모니터링, 알림 및 클라이언트의 구성 제공자 역할과 같은 다른 작업도 제공합니다.

그러나, Sentinel이 Redis 서버가 다운 된 것을 감지하면 어떻게됩니까? 이 기사에서는 Redis를위한 완전한 고 가용성 가상 서비스를 만드는 방법을 알아 봅니다.

Redis 서버가 모니터링을 위해 Sentinel을 사용하지 않는 경우에도이 구성을 수행 할 수 있음을 고려하십시오.

Redis로드 밸런싱 환경

이 기사에서 우리가 달성하고자하는 시나리오는 아래 다이어그램에 나와 있습니다.

Redis Sentinel은 모든 Redis 노드의 상태를 확인하고 오류가 감지되면 Redis 서버의 역할을 변경합니다.

로드 밸런서는 상태도 확인하지만 몇 초마다 주기적으로 수행합니다. Sentinel이 문제를 감지 한 경우도 있지만로드 밸런서가 인식하는 데 몇 초가 걸릴 수 있습니다. 이로 인해 밸런서가 요청이 잘못되었지만 Sentinel에 의해 전환 된 잘못된 마스터로 요청을 보낼 수 있습니다.

Zevenet 이 문제를 해결할 수있는 방법을 제공하면 L4 팜은 주기적으로 검사를 수행합니다. 반면에 이전 확인이없는 백엔드로 전달 된 흐름도 있습니다. 팜 가디언이 백엔드가 응답하지 않는다는 것을 알게되면 경보를 발생시켜 흐름이이 방식으로 진행되지 않아야 함을 나타냅니다.

이것을 고려하여, 우리는 한편으로는 수표와 다른 한편으로는 요청을했습니다. 확인에 실패하면 플로우가 즉시 다른 노드로 전송됩니다. 진행중인 청원조차도 다른 온라인 노드로 리디렉션됩니다. 이에 대해서는 구성에서 자세히 설명합니다.

Redis로드 밸런싱 구성

팜을 설정하기 전에 가상 IP가 있어야합니다. 이를 달성하려면 네트워크> 가상 인터페이스. 다음을 클릭하십시오. 작업> 가상 인터페이스 생성. 다음으로 부모 인터페이스, 가상 인터페이스 이름 및 그 IP 주소:

그런 다음 Redis 가상 서버의 경우 L4xNAT 팜을 만들어야합니다. 이를 위해 LSLB> 농장, 다음을 클릭하십시오 동작농장 만들기.

초기 매개 변수가 설정되면 만들기. 다음으로 이동 Advanced Cypher 탭을 누르고 프로토콜 유형이 TCP인지 확인하십시오.

다음으로 이동 서비스. 고급 건강 점검을 위해 백엔드 및 팜 가디언이 여기에 설정됩니다. 먼저 백엔드 섹션을 클릭하고 작업> 백엔드 추가 아래와 같이 :

Redis 모니터링 및 고급 상태 확인

마지막으로 앞에서 설명한 것처럼 항상 온라인 노드를 사용하고 있는지 확인하기 위해 Farm Guardian 검사가 필요합니다. 이를 위해 다음을 Farm Guardian 명령으로 구성해야합니다.

check_tcp -E -H HOST -p PORT -s 'info replication\r\n' -e role:master -t 3

어디에 HOSTPORT 각 백엔드의 Redis 서버 IP 주소 및 포트로 대체됩니다. 명령 정보 복제 어떤 마스터가 살아 있는지 확인하기 위해 Redis 서버에서 정보를 얻습니다. Sentinel이 역할을 변경하자마자로드 밸런서가 변경 사항을 감지하고 Redis가 역할을 변경하자마자 역할 마스터가 제공되는 경우에만 연결이 서버로 리디렉션됩니다 서버가 다운 된 것으로 표시됩니다. 깃발 -t Farm Guardian이 Redis 서버 응답을 기다리는 시간 (초)이며 응답없이 시간 초과에 도달하면 Redis 서버가 다운 된 것으로 표시됩니다. 반면 Redis 서버 상태가 복구되면 다시 작동합니다.

하지만이 특정 팜의 팜 가디언을 수정하기 전에 모니터링> 농장 보호자 다음을 클릭하십시오 액션> 농장 수호자 만들기.

예를 들어, 새로운 Redis Sentinel 상태 검사기의 구체적인 이름을 선택하십시오. check_redis_master 예에서와 같이 이제 check_tcp 출원 복사 할 보호자 그리고 클릭 만들기 아래 그림과 같이.

마지막으로 위에서 언급 한 명령을 명령 파라미터를 설정하고 아래와 같이 구성하십시오.

를 클릭하십시오 제출.

이제 Redis 가상 서비스에서이 새로운 Farm Guardian 고급 상태 점검을 선택하십시오. 로 돌아가 LSLB> 농장이름으로 생성 된 팜에 RedisFarm, 서비스 탭. 마지막으로 check_redis_master 방금 만든 명령 백엔드의 상태 검사.

를 클릭하십시오 업데이트 팜과 이제 Redis는 완전히 가용성이 높습니다.

참조

https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial

공유 :

GNU Free Documentation License의 조건에 따른 문서.

이 글이 도움 되었나요?

관련 기사