web-dev-qa-db-ja.com

Redis&HAProxy-構成設定を更新しましたか?

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
2
snelis
PINGrn

読む必要があります

PING\r\n

他のtcp-checkメッセージについても同じです。 PING\r\nの代わりにPINGrnを送信しています。これは無効なコマンドであり、エラーがスローされ、UPチェックが失敗します。

2
Ninpo

認証付きのREDISの場合、これを追加します:

tcp-check send AUTH\ xxx_xxx\r\n
1
Theodor Ganescu