問題タブ [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.
java - Redis Sentinel で @EnableRedisHttpSession 構成を修正する
複数のバックエンド Spring-Boot サーバーを備えた Spring Cloud ベースのアプリケーションがあります。サーバーはすべて @EnableRedisHttpSession を介して Redis サーバーとセッションを共有しています。
マスター/スレーブ構成と Redis Sentinel を使用してアプリケーションを構成しようとしています。私のセットアップは、1 つのマスター、2 つのスレーブ、および 3 つのセンチネルです。
私は環境に関する問題を抱え続けています。最初は、スレーブが読み取り専用であるというエラーが表示されました。そのため、すべてのスレーブを READWRITE に設定する必要がありました。その後、まだこのエラーが発生しました。スレーブがマスターに昇格したときに、古いマスターがスレーブになり、デフォルトの READONLY 設定になっていることがわかりました。そのため、マスターも READWRITE に設定する必要がありました。これらは、redis サーバーを起動するための私のコマンドです (同じマシンを使用しても意味がないことはわかっています。この段階ではテスト目的です)。
ブートマスター:
ブートスレーブ:
セッションに参加しているスプリング ブート サーバーごとの application.properties/yml 構成:
Redis センチネル構成:
conf ファイルは次のとおりです。
他の 2 つのセンチネルの場合は、ポート 5001 と 5002 です。
現在、すべてが正常で問題がない限り、すべて正常に動作します。
ただし、マスター redis サーバーを強制終了すると、動作が停止します。まず、次のエラーが表示されます。
さらに悪いことに、アプリケーションを再起動すると、動作も停止します。言うまでもなく実際のエラーはありませんが、アプリケーションは単に機能しません。たとえば、コンテンツを提供する代わりに、テキストだけ (javascript/css/images なし) のページを取得します。これは通常、使用する必要があるセッション ID が見つからないことを示しています。そして、これはログアウト後も発生します。
マスター サーバーを強制終了すると、redis Sentinel が構成ファイルを書き換えることに気付きました。たとえば、マスター redis サーバーを強制終了した後、sentinel.conf は次のように表示されます。
そして、これらの設定は、すべてのサーバー/redis ノードを再起動した後でもそのまま残ります。構成ファイルを手動で修正することによってのみ、アプリケーションを再び機能させることができます。
明らかに、現時点ではこのソリューションを使用できません。どんな助けでも大歓迎です。
完全なスタックトレースは次のとおりです。
また、センチネル ログの 1 つの出力を次に示します。
Redis マスターのログ (sigterm 通知付き) は次のとおりです。
2 つの Redis スレーブのログは次のとおりです。
2番:
ありがとう。
redis - CONFIG コマンドの名前が変更された Redis を使用する Redis-Sentinel
CONFIG
コマンドの名前が次のように変更されましたCONFIG_2267bccb973c432d96a26e96ca50860a
私が知っているように、Redis-sentinel はこのコマンドに依存しています。名前が変更されたコマンドを使用するように redis-sentinel を構成するにはどうすればよいですか?
redis - Sentinel で Redis クラスターを実行する方法
通常、スケーリングと高可用性は異なる概念であるため (負荷分散のフォールト トレランス スキームを選択しない限り)、Redis が両方をサポートすることを望みました。しかし、私の理解では、Redis クラスターと Sentinel を混在させることはできませんか? その場合、複数のパーティションを持ち、Sentinel によって管理されるデプロイメントを作成するにはどうすればよいですか? これがどのように行われるかを説明するガイドはありますか?
javascript - redis で JS オブジェクトを独自のイベント パラメータに渡す方法 - 接続イベントのセンティナル
redisセンチネルクライアントプログラム-最初のプログラムで、redisセンチネルオブジェクトを作成したままにしておき、 KEY を設定すると正常に動作します。しかし、2 番目のプログラムを観察すると、client.on('connect', runSample(client)); 私はクライアント オブジェクト ( redis sentinel client ) を渡しています。これは接続パラメーター runSample にあります。このため、次のエラーが発生します..
エラーの詳細
https://github.com/DocuSignDev/node-redis-sentinel-client/blob/master/index.js
最初の作業プログラム..
機能していない 2 番目のプログラム
ありがとう
redis - Redis Sentinel 構成が機能しない
2 つの redis ノードを使用してセンチネルをセットアップしようとしています。conf ファイルをインラインで見つけてください。
ポート 16371
dir "C:\Program Files\Redis\16371\"
ログレベル通知
ログファイル "C:\Program Files\Redis\logs\16371.log"
センチネル モニター ExampleMaster 127.0.0.1 6371 1
Sentinel down-after-milliseconds ExampleMaster 3000
センチネル フェイルオーバー タイムアウト ExampleMaster 6000
この構成でサーバーを実行しようとすると、次のエラーが発生します。
* FATAL CONFIG FILE ERROR * 構成ファイルの読み取り中、5 行目
誰かがこれを修正するのを手伝ってくれますか? ティア:)
logstash - redisセンチネルを使用したlogstashは可能ですか?
高可用性 ELK 監視システムを redis で構築したいのですが、redis を HA にする方法に少し混乱しています。
Redis Sentinel は、Redis の高可用性を提供します。しかし、ドキュメントにはこれに関する構成が見つかりません。https://www.elastic.co/guide/en/logstash/current/plugins-inputs-redis.html
では、logstash の入出力として使用できますか? 誰でもこれの経験がありますか?
c# - Sentinel にサブスクライブして、アプリケーションのフェイルオーバー中に Redis マスター サーバー スイッチを監視する方法は?
私はこの答えをずっと探してきましたが、これを成功させる方法を示した人は誰もいません。そこで、C# の StackExchange / Sentinel を使用した Redis フェールオーバーからいくつかのコードを取得し、単純なコード ブロックを作成しました。
ここでFailover()
は、アプリケーションの起動時にメソッドが呼び出されます。この方法では、現在のサーバーにデプロイされた Sentinel サーバーへの接続を作成するだけです。次に、Sentinel の「+switch-master」イベントにサブスクライブしようとします。イベント ハンドラーWriteToConsole
は、アプリケーションが実際にイベントをリッスンしていることを通知するだけの単純なメソッドです。
WriteToConsole
最終的にはプレースホルダー メソッド内にロジックを追加して、新しいマスター Redis サーバーに切り替えることができるようにしたいと考えています。
しかし、この設定はうまくいきません。問題の Sentinel によって監視されているマスター Redis サーバーを停止しても、アプリケーションまたはコンソール ダイアログ ポップアップに何の影響も見られません。私は何を間違っていますか?私は正しい方向にいますか?