redis 클러스터 분할 브레인이란 무엇입니까?
Redis 클러스터 브레인 분할은 네트워크 문제로 인해 Redis 마스터 노드, Redis 슬레이브 노드 및 Sentinel 클러스터가 서로 다른 네트워크 파티션에 있다는 것을 의미합니다. 이때 Sentinel 클러스터는 마스터의 존재를 감지할 수 없기 때문입니다. , 슬레이브 노드가 마스터 노드로 승격됩니다. (추천 학습: Redis 동영상 튜토리얼)
이때 하나의 두뇌가 두 개로 나뉘는 것처럼 서로 다른 두 개의 마스터 노드가 있습니다.
클러스터 분할 브레인 문제에서 클라이언트가 원래 마스터 노드를 기반으로 계속 데이터를 쓰면 새 마스터 노드가 데이터를 동기화할 수 없게 됩니다. 네트워크 문제가 해결되면 센티넬 클러스터가 해당 마스터 노드를 강등합니다. 원래 마스터 노드에서 슬레이브 노드로 데이터를 동기화하는 경우 이때 새 마스터의 데이터를 동기화하면 많은 양의 데이터 손실이 발생합니다.
해결 방법
redis 구성 파일에는 두 개의 매개 변수가 있습니다
min-slaves-to-write 3<br/>min-slaves-max-lag 10<br/>
첫 번째 매개 변수는 마스터에 연결된 슬레이브의 최소 수를 나타냅니다.
두 번째 매개 변수는 슬레이브가 마스터에 연결하는 데 걸리는 최대 지연 시간을 나타냅니다. master
마스터에 연결된 슬레이브 수가 첫 번째 매개변수보다 적고 핑 지연 시간이 두 번째 매개변수보다 작거나 같으면 마스터는 이 두 매개변수를 구성한 후 쓰기 요청을 거부합니다. 클러스터 브레인 분할이 발생하면 원래 마스터 노드는 클라이언트의 쓰기 요청을 거부하므로 데이터 동기화 후 데이터 손실을 줄일 수 있습니다.
참고: 최신 버전의 redis.conf 파일에 있는 매개변수는
min-replicas-to-write 3<br/>min-replicas-max-lag 10<br/>
가 되었습니다. Redis에서 비동기 복제의 경우 데이터 손실 문제는 이 두 매개변수를 사용할 수도 있습니다.
Redis 관련 기술 기사를 더 보려면 를 방문하세요. Redis 시작하기 튜토리얼 칼럼을 배워보세요!
위 내용은 Redis 스플릿 브레인에는 몇 개의 노드가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!