1

私が理解しているように、redis がマシンのクラスターで実行される場合、複数のスレーブと 1 つのマスターが存在します。また、コマンドを使用して、起動時にスレーブをマスターに接続させることができます。そして、クラスター上の各マシンのセンチネルは、マスターに接続してすべてのスレーブを見つけ、現在のマスターが何らかの理由でダウンした場合にそのうちの 1 つをマスターに切り替えることができます。

さて、私の質問は - クラスターで redis サーバーを起動するときに、指定されたマスターがダウンしている場合、どのようにフェイルオーバーできますか? SLAVEOF コマンドは失敗し、マスターがないため、センチネルが構成データを取得するものは何もありません。この問題をどのように解決しますか? ありがとう !

4

1 に答える 1

1

したがって、まだ開発中の Redis Cluster は、まさにこの問題を解決するためのものです。
http://redis.io/topics/cluster-spec

Zookeeper、HAProxy、およびその他の多くのツールをセットアップに追加して、この自動フェイルオーバーを実現できます。Sentinels を備えた Redis は、パズルの 1 ピースを自己管理するだけですが、それ自体では。

アプリケーションは、新しいマスターを指すように構成を更新する必要があります。そのため、フェイルオーバー ロジックを Redis 接続ロジックに追加する必要があります。アプリケーションの記述内容に依存するため、簡単な解決策はわかりません。

より具体的には、Java Redis/Jedis で単一障害点がなく、自動化されたフェイルオーバーを使用する前に、同様の質問をしました

そして良い情報が返ってきました。

于 2014-06-18T12:42:32.793 に答える