찾다

 >  Q&A  >  본문

Redis有什么好的自动故障转移方案

具体需求是这样的,

这里的Redis是做存储的,不只是做缓存,例如任务队列,用户动态等

一主多从的Redis实例集群,当主发生故障的时候,如何能:

1、自动选出一个新的主实例
2、不需要应用端修改配置,自动将写请求切换到这个新的主实例上

PHP中文网PHP中文网2796일 전1059

모든 응답(6)나는 대답할 것이다

  • PHPz

    PHPz2017-04-24 09:11:53

    redis 2.8 sentinel을 사용하면 요구 사항을 충족할 수 있습니다.

    주요 목적은 마스터와 슬레이브를 모니터링하는 것입니다. 어떤 종류의 오류로 인해 마스터가 실패하면
    클러스터의 센티널은 알고리즘과 결합된 구성 을 통해 슬레이브의 새 마스터 ,
    를 선택합니다. 그리고 다른 슬레이브와 센티널에게
    sentinel.conf의 관련 구성이 자동으로 수정되며 redis.conf 파일을 수동으로 수정할 필요가 없음을 알립니다.
    원래 주인이 노예가 되었습니다.

    sentinel이 클러스터 상태인지 여부는 구성할 필요가 없습니다. 다음과 같이 sentinel.conf에서 동일한 모니터만 구성하면 됩니다.
    센티넬 모니터 mymaster 127.0.0.1 6379 2
    IP와 포트는 동일합니다. Sentinel은 가십 프로토콜을 통해 자신과 다른 Sentinel을 클러스터로 통합할 수 있습니다.
    센티넬 마스터에게 어떤 슬레이브가 있는지 알려줄 필요가 없는 것과 비슷합니다.
    위에 질문이 있으시면 언제든지 다시 논의해 주시기 바랍니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:11:53

    추가 참고사항:

    Redis Sentinel 솔루션

    장점

    마스터 Redis를 자동으로 제거하고, 슬레이브 Redis에서 새 마스터를 선택하고, 새 마스터의 다른 슬레이브 Redis 슬레이브를 수정할 수 있습니다

    단점

    프록시 전달 기능이 없습니다. 애플리케이션에서 구성을 수정하고 새 호스트에 연결해야 합니다

    Redis Sentinel이 마스터 실패를 감지하면 알림을 보낼 수 있습니다. 이 경우 클라이언트는 Redis Sentinel을 통해 알림을 모니터링할 수 있어야 합니다.
    제공된 API는 새로운 기본 Redis 주소를 얻습니다

    SENTINEL get-master-addr-by-name 마스터 이름

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:11:53

    twemproxy는 Twitter의 오픈 소스 Redis 프록시입니다. Twitter는 이를 사용하여 Redis를 105TB의 메모리, 39MM QPS 및 10,000개 이상의 Redis 인스턴스로 확장했습니다.

    http://highscalability.com/blog/2014/9/8/how-twitter-uses-redis-to-sca...

    회신하다
    0
  • 黄舟

    黄舟2017-04-24 09:11:53

    이 대화형 전자책을 추천하세요. 읽으면서 시도해 볼 수 있습니다. http://book.hubwiz.com/55518c22032c78127cce2481

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-24 09:11:53

    클라이언트를 수정하지 않는 경우 연결 유지를 사용하여 이를 달성할 수 있습니다

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-24 09:11:53

    Redis 3 클러스터에서 선거 구현

    회신하다
    0
  • 취소회신하다