2014-03-13 5 views
1

마스터 슬레이브 설정으로 redis 작업을 시작했습니다. 마스터와 슬레이브는 같은 머신에서 다른 포트로 설정됩니다. 마스터/슬레이브 페일 오버를 처리하기 위해, redis가 센티넬을 가졌습니다. 전초전을 구현하려고합니다. 마스터에 대한redis sentinel 클라이언트에서 마스터를 부활시키는 문제

내 redis.conf : 슬레이브에 대한

bind 127.0.0.1(local Machine) 
Port 6379 

내 redis1.conf :

bind 127.0.0.1 
port 6380 
slaveof 127.0.0.1 6379 

내 sentinel.conf가 있습니다

sentinel monitor mymaster 127.0.0.1 6379 1 
sentinel down-after-milliseconds mymaster 30000 
sentinel failover-timeout mymaster 180000 
sentinel parallel-syncs mymaster 1 

sentinel monitor resque 127.0.0.1 6380 1 
sentinel down-after-milliseconds resque 10000 
sentinel failover-timeout resque 180000 
sentinel parallel-syncs resque 5 

I가 https://www.npmjs.org/package/redis-sentinel-client을 사용하고 있습니다 센티넬 클라이언트.

master와 slave 모두에 대해 하나의 sentinel.conf 파일 만 사용하고 있습니다. 두 서버를 모두 실행하고 마스터 서버를 강제 종료하여 확인했습니다. 슬레이브가 예상대로 마스터가됩니다. http://redis.io/topics/sentinel-old에서 Resurrecting master section 아래에있는 마스터는 새로운 선출 된 마스터의 슬레이브로 추가됩니다. 그러나 주인을 데려 오면 노예가됩니다. 그러나 오래된 주인은 아직도 새로운 주인의 노예가 아니다. 그것은 센티널을 사용하는 올바른 방법입니까 ..?

장애 조치 (failinel)를 사용하여 장애 조치를 처리하는 방법을 알려주는 제안 사항. 또는 노드에 대한 다른 센티널 - 클라이언트 패키지 ..?

답변

0

Windows의 redis 및 sentinel에 대한 적절한 지원은 없습니다. 내가 최신 redis 안정 버전으로 가상 우분투에서 똑같이 확인하면 모든 것이 잘 작동합니다.

0

감시 버전 2.6 버전이 마스터를 부활시키지 않기 때문에 redis 버전 2.8 (Windowws 64 비트에서 사용 가능)을 사용하십시오.

0

2.8을 사용하는 것 외에, 센티넬 구성은 마스터 노드 만 모니터링해야합니다. 모든 슬레이브는 자동 감지됩니다.

그래서 감시 설정에서 유일한 것은 지금까지 내가 (레디 스의 초보자를) 우려하고있다으로

sentinel monitor mymaster 127.0.0.1 6379 1 
sentinel down-after-milliseconds mymaster 30000 
sentinel failover-timeout mymaster 180000 
sentinel parallel-syncs mymaster 1 
0

을해야한다, 감시는 당신이 할 수있는, 편의를 위해 master.So을 형성 슬레이브의 정보를 수집 할 수 있습니다 다음과 같이하십시오 :

  1. master-slave set up; 슬레이브의 정보를 의미
  2. 감시 모니터 마스터. sentinel.conf 아닌 (또는 표지에 연결하여, 상기 명령 "감시 모니터 mymaster가 127.0.0.1 6379 2"간부 인)
  3. "레디 스-CLI를 "센티널에 명령을 실행하면"센티널 페일 오버 mymaster "("mymaster "는 마스터의 이름 임), 그러면 마스터와 슬레이브가 전환되었음을 알 수 있습니다.

더 많은 것은, 당신은 센티널의 수가 충분하다는 것을 확인해야합니다. 예 : quonum이 2 인 경우, 센티넬 수가 3 이상인지 확인하십시오.전초의에 연결이 간부는 "SENTINEL은 센티넬 < 마스터 이름>", 또는 간부 "SENTINEL의 ckquorum < 마스터 이름>"를 확인합니다.