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