問題タブ [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.
node.js - node.js で redis-sentinel-client と socket.io を統合するには?
自動フェイルオーバーを使用して、socket.io とマスター/スレーブ Redis 構成を統合するにはどうすればよいですか?
redis - Booksleeve (1.3.39) + Redis 2.6.16 + Sentinel: 接続が閉じられました (エラー)
実稼働環境に展開すると、Booksleeve からランダムに切断されます。マシンでテストを実行しましたが、エラーを再現できないようです。何を確認すればいいのかわからないので、ここに投稿することにしました。
私のセットアップ:
2 x Redis 2.6.16 (Debian Linux)
2 x Redis センチネル (redis と同じマシンで実行)
4 x Windows Server 2008 R2
アプリケーション接続処理
私のアプリには、ConnectionUtils を使用して開かれる静的接続が 1 つあります。また、すべての接続を実行するタイマー (System.Timers.Timer) もあります。5 インチごとに Ping を実行して、接続がまだ開いているかどうかを確認します。Ping で例外が発生した場合は、ログに記録し、接続を閉じて破棄し、ConnectionUtils を再度使用して新しい接続に置き換えます。Task.UnobservedExceptions も記録しています
これが私のログにあるものです:
これは、ping のエラーを報告する接続モニターです。
Sentinels と直接 Redis の両方を介して接続しようとしましたが、同じ結果が得られます。
ネットワーク管理者に確認を依頼しましたが、彼は問題はないと言っています (そして、私が知らないことについて議論することはできません oO)
Redis の設定とドキュメントを確認しましたが、モニターなどを使用しないクライアントは、redis によって切断されないようにする必要があります。Redis では、アイドル時間の切断も無効になっています。
Sentinel (ベータ版以来) が原因でしょうか?
問題のトラブルシューティングに関するヘルプをいただければ幸いです。
scala - シャットダウン時にnutcracker.ymlのマスターを置き換える方法(temproxy、redis)?
シャーディングにはtemproxyを使用しています。nutcracker.yml ファイルに、すべてのマスターを配置しました。次に、これらのマスターの複数のスレーブを作成しました。すべてのマスターを監視するために redis-sentinel を使用しています。Redis-sentinel は完璧にうまくいっています。マスターの 1 つがダウンすると、そのスレーブがマスターになります。temproxy は新しいマスターで更新されていないため、古いマスターに ping を実行しています。nutcracker.yml ファイルでもマスターを更新する方法はありますか。Scala Play Framework で Redis を使用しています。
redis - redis センチネル クライアントでのマスターの復活に関する問題
マスタースレーブをセットアップしてredisの作業を開始しました。マスターとスレーブは、ポートが異なる同じマシンに設定されています。マスター/スレーブのフェイルオーバーを処理するために、redis にはセンチネルがあったようです。センチネルを実装しようとしています。
マスターの redis.conf:
スレーブ用の私の redis1.conf:
私のsentinel.confには次のものがあります:
Sentinel クライアントにhttps://www.npmjs.org/package/redis-sentinel-clientを使用しています。
マスターとスレーブの両方に使用しているsentinel.confファイルは1つだけです。両方のサーバーを実行し、マスターサーバーを強制終了して確認しました。予想通り、スレーブがマスターになります。http://redis.io/topics/sentinel-oldの Resurrecting master セクションの下に、ダウンしたマスターが新しく選出されたマスターのスレーブとして追加されることが記載されています。しかし、マスターを倒すと、スレーブがマスターになります。しかし、古いマスターはまだ新しいマスターのスレーブではありません. センチネルの正しい使い方ですか..?
センチネルを使用してフェイルオーバーを処理する方法を見つけるための提案はありますか? または、ノード用の他のセンチネルクライアントパッケージ..?
node.js - redis -sentinel を実行する場所
マスター/スレーブ フェイルオーバーを管理するために、redis にはセンチネルが用意されています。私が使用している2つのサーバー。1 つはマスター サーバー用で、もう 1 つはスレーブ用です。マスターとスレーブの両方がリモート サーバーであり、デーモンとして実行されます。マスター IP とスレーブ IP を使用してセンチネルを構成する方法。Sentinel を実行する必要がある場所。Sentinel をデーモンとして実行する方法。
詳細については:
私のマスターが走っています
Port: 6379
IP: 192.168.56.101
私の奴隷が走っています
Port: 6379
IP: 192.168.56.102
私のノードはで実行されています
IP: 192.168.0.140
注: Redis サーバーは Windows の仮想マシンで実行されます。ノードも同じマシン上でローカルに実行されている場合。
更新ドキュメントには、Sentinel を実行するコマンドが指定されています。私の質問は、ローカル マシンまたはマスターが実行されている仮想マシンで、または別のセンチネル サーバーとしてセンチネルを実行する必要があるということです。マスター用に 1 つ、スレーブ用に 1 つ、センチネル用にもう 1 つの redis-server のように。
c# - Redis Sentinel C# クライアント
3 つの redis サーバー、1 つのマスターと 2 つのスレーブがあります。現在、実行中のセンチネルは 1 つだけで、それらすべてを適切に監視しています。必要に応じてどのインスタンスも昇格し、非常にスムーズです。
私が現在抱えている問題は、C#から通信することです。私のグーグルによると、スレーブ/マスターを取得するためのセンチネルをサポートしているのは csredis だけのようです。したがって、このようなコードを使用して...
これはうまく機能し、インスタンスを強制終了するとさまざまな応答が変化します。しかし、それは信じられないほど遅いです!
マネージャーを作成してスレーブを 5 回取得しようとすると、スレーブ要求ごとに約 1 秒かかり、非常に遅くなります。私が気付いたのは、最初のリクエストが非常に高速であることです。以下のコードを参照してください...
これが出力です...
奇妙なことに、最初のものは 4ms です! その後、後続のクライアントを取得するのに時間がかかります。それで、ループ項目ごとに新しい SentinelManager を作成して、別のテストを試してみましたが、それはより高速ですか? いいえ、まったく同じです。最初は非常に速く、次に非常に遅くなります。
このライブラリを間違って使用していますか、それともバグを見つけましたか? ソースを取得してステップスルーしようとしています...
乾杯...