>데이터 베이스 >Redis >Redis 클러스터에서 분할 브레인을 방지하는 방법

Redis 클러스터에서 분할 브레인을 방지하는 방법

(*-*)浩
(*-*)浩원래의
2019-11-20 14:39:297596검색

Redis 클러스터에서 분할 브레인을 방지하는 방법

Redis 클러스터 분할 브레인이란 무엇인가요?

Redis 클러스터 브레인 분할은 네트워크 문제로 인해 Redis 마스터 노드, Redis 슬레이브 노드 및 Sentinel 클러스터가 서로 다른 네트워크 파티션에 있다는 사실을 말합니다. 센티넬 클러스터는 마스터의 존재를 감지할 수 없으므로 슬레이브 노드가 마스터 노드로 승격됩니다. (추천 학습:##redis 동영상 튜토리얼)#🎜🎜 ## 🎜🎜#이때 하나의 뇌가 두 개로 갈라진 것처럼 서로 다른 두 개의 마스터 노드가 있습니다.

클러스터 분할 브레인 문제에서 클라이언트가 원래 마스터 노드를 기반으로 계속 데이터를 쓰는 경우 네트워크 문제가 해결되면 새 마스터 노드가 데이터를 동기화할 수 없게 됩니다. 센티넬 클러스터는 원래 상태로 돌아갑니다. 마스터 노드는 슬레이브 노드로 다운그레이드됩니다. 이때 새 마스터의 데이터를 동기화하면 많은 양의 데이터가 손실됩니다.

Solution

Redis 클러스터에서 분할 브레인을 방지하는 방법redis 구성 파일에는 두 개의 매개 변수가 있습니다

#🎜 🎜 #
min-slaves-to-write 3
min-slaves-max-lag 10

첫 번째 매개변수는 마스터에 연결되는 최소 슬레이브 수를 나타냅니다.두 번째 매개변수는 슬레이브가 마스터에 연결되는 최대 지연 시간을 나타냅니다.

#🎜🎜 #연결된 경우 마스터에 대한 슬레이브 수가 첫 번째 매개변수보다 작고 핑 지연 시간이 두 번째 매개변수보다 작거나 같으면 마스터는 이 두 매개변수를 구성한 후 클러스터인 경우 쓰기 요청을 거부합니다. 브레인 분할이 발생하면 원래 마스터 노드는 클라이언트에 대한 쓰기 요청을 수신하고 거부되므로 데이터 동기화 후 데이터 손실을 줄일 수 있습니다.

참고: 최신 버전의 redis.conf 파일에 있는 매개변수는

min-replicas-to-write 3
min-replicas-max-lag 10

Redis에서 비동기 복제의 경우 데이터 손실 문제로 인해 이 두 가지를 사용할 수도 있습니다. 매개변수

위 내용은 Redis 클러스터에서 분할 브레인을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.