2つのRedisインスタンスがインストールされており、そのうちの1つがマスターです。それは非常にうまく機能しており、頭痛の種はありません。
現在、HAProxy/keepalivedノードに何らかのフェイルオーバーを処理させようとしています。
1)それも可能ですか?ノードをマスターとして設定し、もう一方をバックアップとして設定しますか?これは、MySQLノードで行っていることです。
サーバー192.168.32.33192.168.32.33:3306バックアップの確認 サーバー192.168.32.34192.168.32.34:3306の確認
2)もしそうなら、これに関する更新されたドキュメントはありますか?以下で参照されているように、HAProxyのブログのドキュメントに従いました。
ServerFaultの記事: Redisセンチネル+ HAProxyフェイルオーバー
しかし、CLIや他のクライアントを介してノードを使用できるにもかかわらず、ノードはダウンとして表示されています。
HA Proxy Webインターフェイスで失敗したRedisノードのスナップショット
CLIを使用して、tcp-checksでコマンドを発行すると、応答はconfで期待されるリターンと一致します。 (注:Redisノードではまだ認証がオンになっていません)。
これが私のhaproxy.cfgです-MySQLセクションの最後の行から始まります
サーバー192.168.32.34192.168.32.34:3306チェック デフォルトREDIS モードtcp タイムアウト接続4秒 タイムアウトサーバー30秒 タイムアウトクライアント30秒 フロントエンドft_redis バインド*:6379名前redis default_backend bk_redis バックエンドbk_redis オプションtcp-check tcp-check send PINGrn tcp-check expect string + PONG tcp-check send info Replicationrn tcp-check expect string role:master tcp-check send QUITrn tcp-check expect string + OK server Site2DB3 192.168.32.36:6379 check inter 1s server Site1DB3 192.168 .22.36:6379チェックインター1s
また、tcp-check sendの後にスペースをエスケープするようにしてください:
tcp-check send info\ replication\r\n
PINGrn
読む必要があります
PING\r\n
他のtcp-checkメッセージについても同じです。 PING\r\n
の代わりにPINGrn
を送信しています。これは無効なコマンドであり、エラーがスローされ、UPチェックが失敗します。
認証付きのREDISの場合、これを追加します:
tcp-check send AUTH\ xxx_xxx\r\n