問題タブ [redis-sentinel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
redis - Windows での Redis Sentinel ローカル クラスターのセットアップ
redis-sentinel クラスターをローカルでセットアップしようとしています。私はRedis-64.2.8.4
Windows で実行しています。私のライブ環境を反映するように、2 つのスレーブを持つマスターをセットアップしたいと思います。
私は走っています
この構成で
しかし、その後、これの繰り返しログを取得します
私はドキュメントを読みましたが、正直に言うと、ここで何をすべきかについてそれほど賢明ではありません。構成ですべてのサーバーを指定する必要がありますか?
redis - クラスター上の指定された redis マスターが起動時にダウンしている状況を管理する方法
私が理解しているように、redis がマシンのクラスターで実行される場合、複数のスレーブと 1 つのマスターが存在します。また、コマンドを使用して、起動時にスレーブをマスターに接続させることができます。そして、クラスター上の各マシンのセンチネルは、マスターに接続してすべてのスレーブを見つけ、現在のマスターが何らかの理由でダウンした場合にそのうちの 1 つをマスターに切り替えることができます。
さて、私の質問は - クラスターで redis サーバーを起動するときに、指定されたマスターがダウンしている場合、どのようにフェイルオーバーできますか? SLAVEOF コマンドは失敗し、マスターがないため、センチネルが構成データを取得するものは何もありません。この問題をどのように解決しますか? ありがとう !
redis - この Redis Sentinel 構成でマスターを切り替える方法は?
次の Redis/Sentinel 構成があります。
- Redis マスター
A
+N
スレーブ M
センチネルズ ウォッチングA
, 名前付きmasterA
- クライアント アプリケーションは、センチネルに のクエリを実行し
masterA
、次にクエリと変更を行いますA
今A
では時代遅れであり、(最小限のダウンタイム/データ損失で) と呼ばれる新しい Redis マスターに置き換えたいと考えていB
ます。操作の最後に、これが必要です:
- Redis マスター
B
+N
スレーブ - クライアント アプリケーションのクエリと変更
B
次のように進めることができました:
- センチネル
B
に という名前の監視を開始させるmasterB
- の各スレーブを
A
のスレーブにするB
masterA
そこから、センチネルと話すときにクライアントアプリケーションがまだ要求しているため、私は立ち往生しています。2 つの質問があります。
- センチネル
B
として知られるようになり、したがってクライアントアプリケーションでもマスター名を切り替える方法はありますか?masterA
- 古いマスターから新しいマスターへの切り替えを処理するようにクライアント アプリケーション コードを変更した方がよいでしょうか?
redis - Redis Sentinel Docker イメージ / Dockerfile
高可用性 Redis を coreOS クラスターにデプロイしようとしています。動作する Redis Sentinel Docker イメージ (つまり Dockerfile) が必要です。私はそれを作成するのに十分な情報/専門知識を収集しました (私は思う)... しかし、高度なネットワーキングに関する私の限られた知識/経験が、それを構築して共有することを妨げている唯一の理由です.
ここの専門家である誰かが、Redis Sentinel Dockerfile の開発を手伝ってくれますか? (現在は存在しません)? Redis/Docker コミュニティは、これによって本当に恩恵を受けるでしょう。
より広範な問題とコンテキストは次のとおりです: https://github.com/antirez/redis/pull/1908
解決策は具体的にはここにあると思います: https://github.com/antirez/redis/pull/1908#issuecomment-54380876
これが私が使用している Dockerfile です...しかし、上記のスレッドを読むと、私のコメント (joshula) が表示されます... mattsta が話しているネットワークの修正が欠けています。これを coreOS で使用しているため、sentinel.conf のすべての構成設定は、実行時にコマンド ライン経由で設定されていることに注意してください (したがって、ENTRYPOINT)。
redis - redis センチネルのクォーラムを変更する
定足数 2 のマスター スレーブ セットアップを監視する 3 つのセンチネルがあり、これを 5 つのセンチネルと定足数 3 に増やしたいと考えています。しかし、SENTINEL SET マスター クォーラム 3 を実行すると、変更は他の 2 つのセンチネルに反映されません。これは正しいですか? フェイルオーバーが発生した場合、最後に行われた変更の値ですか?
redis - Redis Sentinel : 最後のノードがマスターにならない
3 ノードの redis クラスターで自動フェイルオーバー システムをセットアップしようとしています。これらのノードのそれぞれに redis-sentinel をインストールしました (この人のように: http://www.symantec.com/connect/blogs/configuring-redis-high-availability )。2 つまたは 3 つのノードがあれば、すべて問題ありません。問題は、ノードが 1 つしか残っておらず、それがスレーブである場合、自動的にマスターとして選出されないことです。クォーラムは 1 に設定されているため、最後のノードはマスターの odown を検出しますが、過半数がないためフェイルオーバーに投票できません。
この (驚くべき) 問題を克服するために、他のノードにマスターを要求する小さなスクリプトを作成しました。応答がない場合は、現在のノードをマスターとして設定します。このスクリプトは、通知スクリプトとして redis-sentinel.conf ファイル内で呼び出されます。しかし... redis-sentinel サービスが開始されるとすぐに、この設定は「消去」されます! /etc の構成ファイルを見ると、「sentinel notification-script」行が消えています (redis-sentinel はその構成ファイルを書き換えます)。しかし、私が書いた構成は利用できなくなりました。
これは、sentinel-masters コマンドの結果です。唯一のことは、以前に「ダウンアフターミリ秒」を5000に、「フェイルオーバータイムアウト」を10000に設定したことです...
誰かが似たようなものに会ったかどうかわかりませんか?まあ、誰かが何が起こっているのかについて少し考えているなら、私はそれについてうれしいです;)
node.js - Google Cloud にデプロイされた redis に接続するにはどうすればよいですか?
ケースの基本: Redis インスタンス (単一インスタンス) を Google Cloud にデプロイしました。NodeJS ベースのサーバーと redis-sentinel ライブラリを使用してノードに接続します。その理由は、Google クラウド上のノードのセンチネル ベースの管理です。
ダッシュボード/コンソールの SSH ログインを介して redis インスタンスにログインできます。redis-cli を使用して、redis のローカルで実行されているサービスに接続し、さまざまなデータセットを作成/編集できます。
問題: localhost または同じプロジェクト ドメイン内にデプロイされた他のコンピューティング インスタンスを介してアクセスしようとすると、. 接続にパブリック IP とポート 26379/6379 を使用していますが、接続が拒否されています。
考えられる理由:
- ネットワーク アクセス ポリシー。