検索

ホームページ  >  に質問  >  本文

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

具体需求是这样的,

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

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

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

PHP中文网PHP中文网2832日前1084

全員に返信(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 を 105 TB のメモリ、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

    クライアントを変更しない場合は、keepalivedを使用してそれを実現できます

    返事
    0
  • PHP中文网

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

    redis 3 クラスターは選挙を実装します

    返事
    0
  • キャンセル返事