git commitメッセージによると、ServiceStackは最近、フェイルオーバーのサポートを追加しました。私は当初、自分のRedisインスタンスの1つを削除し、プールされたクライアントマネージャがフェイルオーバーをエレガントに処理して、代替のRedisインスタンスの1つに接続しようとしていると仮定しました。残念ながら、私のコードはちょうどバグがあり、最初のRedisインスタンスに接続できないと言います。ServiceStack PooledRedisClientManagerフェールオーバーはどのように機能しますか?
私は現在、Windowsでポート6379のマスタと6380のスレーブを持つRedis 2.6.12のインスタンスを実行しています。マスターがダウンすると自動的にスレーブをマスタに昇格するように設定されています。私は現在、このように私のクライアントマネージャをインスタンス化しています:(スレーブ用)
最初の配列がされて読み書き(マスター用)、ホスト、および二番目の配列は読み取り専用ホスト。
ポート6379でマスターを終了すると、監視員はスレーブをマスターに昇格させます。今、ポート6380にフェイルオーバーする代わりにC#コードを実行しようとすると、単に "localhost:6379でredis instanceに接続できませんでした"というエラーが返されて返されます。
回避策はありますか、フェールオーバーは単に私が望むように動作しませんか?
あなたは道を見つけました@Vliu – jaxxbo
ほとんどの人が行った研究のほとんどから、ほとんどの人はフェールオーバーを処理するコードに頼っていません。彼らは、HAProxy @jaxxboのようなredisデータベースの上に(Linuxの)プロキシ層を使用します。 – Vliu