Redis 클러스터 구축 시 마스터 인스턴스와 슬레이브 인스턴스를 동일한 호스트에 배치할 수 있나요?
PHP中文网
PHP中文网 2017-04-25 09:03:24
0
5
936

실제 온라인 상황은 총 4개의 서버가 있는 상황입니다. 지금은 주로 memcache를 사용하고 있고, 현재 메모리 공간은 61M정도만 사용하고 있습니다. 회사의 요구는 전체 웹사이트의 캐시를 점차적으로 Redis로 마이그레이션하는 것입니다.

현재 아이디어는 3개의 서버를 클러스터로 사용하고 각 서버는 마스터 인스턴스로 구성되는 것입니다. 고가용성을 달성하려면 각 서버도 슬레이브 인스턴스로 구성되어야 합니다. 제가 묻고 싶은 것은 마스터 인스턴스와 슬레이브 인스턴스를 하나의 호스트에 구성할 수 있으며, 이러한 구성이 미치는 영향은 무엇입니까?

또 다른 아이디어는 2개의 서버만 사용하는 것입니다. 한 서버는 3개의 마스터 인스턴스를 실행하고 다른 서버는 3개의 슬레이브 인스턴스를 실행합니다. 더 나은 해결책이 있나요?

클러스터에는 마스터 노드가 3개 이상 있어야 한다는 말도 들었습니다. 마스터노드 2개 사용은 불가능한가요?

PHP中文网
PHP中文网

认证0级讲师

모든 응답(5)
过去多啦不再A梦

마스터와 슬레이브를 동일한 머신에 배치하면 문제가 발생합니다.

  1. 마스터와 슬레이브 모두 실행 시 메모리를 점유해야 하며, 머신의 메모리가 부족할 수 있습니다

  2. 머신이 다운되거나 전원이 꺼지거나 네트워크 연결이 끊어지면 마스터와 슬레이브에 대한 고가용성이 없습니다.

마스터와 슬레이브를 서로 다른 머신에 배치하는 것이 가장 좋습니다.

왜 2가 아닌 3인지. 이는 클러스터 선거 중 가장 좋은 전략입니다. Redis3.0이 클러스터를 지원하기 시작합니다.

일반적으로 클러스터가 특정 공개 상태에 대한 합의에 도달하려면 클러스터에 있는 Redis 인스턴스의 절반 이상이 동의해야 합니다.
다수결이 필요한 이유는 클러스터 내 분할 브레인, 즉 네트워크 분할 상황을 고려해야 하기 때문입니다.
다수결은 네트워크가 어떻게 분리되어도 보장할 수 있습니다. 얼마나 많은 소규모 클러스터가 대규모 클러스터로 분리되어 있더라도 서비스를 제공할 수 있는 소규모 클러스터의 인스턴스(인스턴스가 절반 이상 있음을 의미)는 적어도 하나의 인스턴스가 최신 상태 정보에 동기화됩니다.

위에서 언급한 과반수를 이해한 후 왜 홀수인지
짝수도 과반수를 가질 수 있습니다. 예를 들어, 4 인스턴스 클러스터의 경우 3이 다수입니다.
그런데 왜 여전히 홀수가 최고일까요?
클러스터에 인스턴스가 5개 있는 경우 인스턴스 2개의 충돌만 허용할 수 있습니다.
클러스터에 6개의 인스턴스가 있는 경우 2개의 인스턴스 충돌만 허용할 수 있습니다.
동일한 공차에서 6과 5의 차이점은 무엇입니까?

  • 클러스터는 서로 통신해야 하기 때문에 인스턴스가 많을수록 네트워크 오버헤드도 커집니다.

  • 인스턴스가 많을수록 인스턴스가 5개 있을 때 인스턴스 3개가 충돌할 확률은 인스턴스가 6개일 때보다 적습니다.

물론 홀수가 가장 비용 효율적입니다.

習慣沉默

가능합니다. 포트만 다르게 설정하면 되는데, 영향에 관해서는 특별한 영향은 없는 것 같습니다.

洪涛

3개의 머신이 있는 경우 계란을 한 바구니에 담는 대신 각 머신이 마스터를 실행한 다음 각 슬레이브를 다른 머신에 배치하여 링 백업을 형성합니다.
IP 자원이 충분하다면 고가용성을 구현하기 위한 하 미들웨어를 찾아보세요.

刘奇

동일한 물리적 머신에 프로덕션 환경을 두는 것은 권장되지 않습니다. 3개의 마스터가 있는 클러스터는 3.0 클러스터를 말하는 것입니다. 홀수의 노드는 투표가 확실한 결과를 낳을 수 있음을 보장합니다

仅有的幸福

그럼 슬레이브는 다른 곳에 두자.

이 디자인에 대해 어떻게 생각하시나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿